//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.164 on Sat Nov  7 00:16:05 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0},
                              { 0, 1.000000, 0, 0},
                              { 0, 0, 1.000000, 0},
                              { 0, 0, 0, 1.000000} }
dcl_constantbuffer CB0[373], immediateIndexed
dcl_constantbuffer CB1[100], dynamicIndexed
dcl_constantbuffer CB2[12], immediateIndexed
dcl_constantbuffer CB3[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_comparison
dcl_resource_texture2darray (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_structured t3, 4
dcl_resource_structured t4, 228
dcl_resource_structured t5, 224
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2darray (uint,uint,uint,uint) t7
dcl_resource_texture2darray (float,float,float,float) t8
dcl_resource_texturecubearray (float,float,float,float) t9
dcl_resource_texture2darray (float,float,float,float) t10
dcl_resource_texture2darray (float,float,float,float) t11
dcl_resource_texture2d (float,float,float,float) t12
dcl_resource_texture2d (float,float,float,float) t13
dcl_resource_texture2d (float,float,float,float) t14
dcl_resource_structured t15, 208
dcl_resource_structured t16, 96
dcl_resource_texture2darray (float,float,float,float) t17
dcl_resource_texture2darray (float,float,float,float) t18
dcl_resource_texture2darray (float,float,float,float) t19
dcl_resource_texture2darray (float,float,float,float) t20
dcl_resource_texture2darray (float,float,float,float) t21
dcl_resource_texture2d (float,float,float,float) t22
dcl_resource_texture2darray (uint,uint,uint,uint) t23
dcl_resource_structured t24, 4
dcl_uav_typed_texture2darray (float,float,float,float) u0
dcl_input vThreadGroupID.x
dcl_input vThreadIDInGroup.xy
dcl_temps 146
dcl_thread_group 8, 8, 1
ushr r0.x, vThreadGroupID.x, l(2)
iadd r0.x, r0.x, cb3[0].x
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.x, r0.x, l(0), t24.xxxx
and r1.x, r0.x, l(0x00007fff)
ubfe r1.y, l(15), l(15), r0.x
and r2.x, vThreadGroupID.x, l(1)
ubfe r2.y, l(1), l(1), vThreadGroupID.x
ishl r0.yz, r2.xxyx, l(0, 3, 3, 0)
imad r0.yz, r1.xxyx, l(0, 16, 16, 0), r0.yyzy
iadd r2.xy, r0.yzyy, vThreadIDInGroup.xyxx
ushr r2.z, r0.x, l(30)
mov r2.w, l(0)
ld_indexable(texture2darray)(float,float,float,float) r0.x, r2.xyzw, t0.xyzw
eq r0.y, r0.x, l(0.000000)
if_nz r0.y
  ret
endif
ld_indexable(texture2darray)(uint,uint,uint,uint) r0.y, r2.xyzw, t23.xyzw
and r0.y, r0.y, l(2)
if_z r0.y
  ret
endif
utof r0.yz, r2.xxyx
ishl r0.w, r2.z, l(2)
add r1.zw, r0.yyyz, l(0.000000, 0.000000, 0.500000, 0.500000)
mul r1.zw, r1.zzzw, cb0[42].zzzw
mad r1.zw, r1.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)

dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture1d)(float,float,float,float) r60.xyzw, l(90, 0, 0, 0), t120.xyzw
ld_indexable(texture2d)(float,float,float,float) r52.xyzw, l(0, 0, 0, 0), t125.xyzw

//mad r1.z, -r52.x, l(1.0), r1.z

// 1/w del píxel = fila w de invVP · (ndc.x, -ndc.y, depth, 1)
mul r61.x, -r1.w, cb1[r0.w + 41].w
mad r61.x, cb1[r0.w + 40].w, r1.z, r61.x
mad r61.x, cb1[r0.w + 42].w, r0.x, r61.x
add r61.x, r61.x, cb1[r0.w + 43].w
div r61.x, l(1.0), r61.x          // w (profundidad de vista)

// factor (1 - conv/w)
div r61.y, r52.y, r61.x
add r61.y, -r61.y, l(1.0)

// x_mono = x_estéreo - sep * (1 - conv/w)
mad r1.z, -r52.x, r61.y, r1.z

mul r3.xyzw, -r1.wwww, cb1[r0.w + 41].xyzw
mad r3.xyzw, cb1[r0.w + 40].xyzw, r1.zzzz, r3.xyzw
mad r3.xyzw, cb1[r0.w + 42].xyzw, r0.xxxx, r3.xyzw
add r3.xyzw, r3.xyzw, cb1[r0.w + 43].xyzw
div r3.xyz, r3.xyzx, r3.wwww
eq r0.x, cb0[47].w, l(0.000000)
if_nz r0.x
  mov r4.xyz, -r3.xyzx
else
  mov r4.x, cb1[r0.w + 0].z
  mov r4.y, cb1[r0.w + 1].z
  mov r4.z, cb1[r0.w + 2].z
endif
dp3 r1.z, r4.xyzx, r4.xyzx
rsq r1.z, r1.z
mul r4.xyz, r1.zzzz, r4.xyzx
ld_indexable(texture2darray)(float,float,float,float) r5.xyzw, r2.xyzw, t17.xyzw
ld_indexable(texture2darray)(float,float,float,float) r6.xyzw, r2.xyzw, t18.xwyz
ld_indexable(texture2darray)(float,float,float,float) r7.xyz, r2.xyzw, t19.xyzw
ld_indexable(texture2darray)(float,float,float,float) r8.xyz, r2.xyzw, t20.xyzw
ld_indexable(texture2d)(float,float,float,float) r1.z, l(0, 0, 0, 0), t1.yzxw
mul r1.w, r1.z, cb0[282].y
eq r3.w, r1.w, l(0.000000)
and r3.w, r3.w, l(0x3f800000)
mad r1.z, r1.z, cb0[282].y, r3.w
rcp r1.z, r1.z
mul r8.xyz, r1.zzzz, r8.xyzx
if_nz cb0[280].w
  ld_indexable(texture2darray)(float,float,float,float) r3.w, r2.xyzw, t21.xyzw
  mul r3.w, r3.w, l(255.500000)
  ftou r3.w, r3.w
else
  mov r3.w, l(255)
endif
mul r9.xyz, r6.xzwx, l(255.500000, 255.500000, 255.500000, 0.000000)
ftou r9.xyz, r9.xyzx
ushr r4.w, r9.z, l(4)
bfi r10.x, l(4), l(8), r9.z, l(0)
ishl r10.y, r4.w, l(8)
or r6.zw, r9.xxxy, r10.xxxy
utof r6.zw, r6.zzzw
mad r6.zw, r6.zzzw, l(0.000000, 0.000000, 0.000488400517, 0.000488400517), l(0.000000, 0.000000, -1.000000, -1.000000)
add r4.w, -|r6.z|, l(1.000000)
add r9.z, -|r6.w|, r4.w
max r4.w, -r9.z, l(0.000000)
ge r10.xy, r6.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r10.xy, r10.xyxx, -r4.wwww, r4.wwww
add r9.xy, r6.zwzz, r10.xyxx
dp3 r4.w, r9.xyzx, r9.xyzx
rsq r4.w, r4.w
mul r10.xyz, r4.wwww, r9.xyzx
mad r11.xyz, r7.xyzx, l(0.305306017, 0.305306017, 0.305306017, 0.000000), l(0.682171106, 0.682171106, 0.682171106, 0.000000)
mad r11.xyz, r7.xyzx, r11.xyzx, l(0.0125228781, 0.0125228781, 0.0125228781, 0.000000)
mul r12.xyz, r7.xyzx, r11.xyzx
mul r6.z, r6.y, r6.y
dp3 r6.w, r10.xyzx, r4.xyzx
max r7.w, r6.w, l(0.000100)
sqrt r6.x, r7.w
mad r13.xy, r6.xyxx, l(0.984375, 0.984375, 0.000000, 0.000000), l(0.00781250000, 0.00781250000, 0.000000, 0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r13.xyz, r13.xyxx, t22.xyzw, s0, l(0.000000)
add r6.x, -r13.x, r13.y
mad r14.xyz, r12.xyzx, r6.xxxx, r13.xxxx
div r6.x, l(1.000000, 1.000000, 1.000000, 1.000000), r13.y
add r6.x, r6.x, l(-1.000000)
mul r8.w, r6.z, r6.z
mad r9.w, -r7.w, r8.w, r7.w
mad r9.w, r9.w, r7.w, r8.w
sqrt r9.w, r9.w
add r3.xyz, r3.xyzx, cb1[r2.z + 98].xyzx
ld_indexable(texture2darray)(uint,uint,uint,uint) r10.w, r2.xyzw, t7.yzwx
ushr r11.w, r10.w, l(24)
utof r11.w, r11.w
mul r12.w, r11.w, l(0.00392156886)
and r10.w, r10.w, l(0x00ffffff)
ige r13.x, cb0[280].z, l(0)
if_nz r13.x
  ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r13.x, cb0[280].z, l(16), t4.xxxx
  ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r15.xyz, cb0[280].z, l(24), t4.xyzx
  ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r13.y, cb0[280].z, l(116), t4.xxxx
  lt r13.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xyxx
  and r13.x, r13.y, r13.x
  dp3 r13.y, r10.xyzx, -r15.xyzx
  lt r13.w, l(0.000000), r13.y
  and r13.x, r13.w, r13.x
  if_nz r13.x
    ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r15.xyzw, l(0), l(0), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r16.xyzw, l(0), l(16), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r17.xyzw, l(0), l(32), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r18.xyzw, l(0), l(48), t16.xyzw
    mov r19.xyz, l(0,0,0,0)
    mov r13.xw, l(0,0,0,0)
    loop
      uge r14.w, r13.x, cb0[280].y
      breakc_nz r14.w
      mul r20.xyzw, r15.xyzw, icb[r13.x + 0].xxxx
      mad r20.xyzw, icb[r13.x + 0].yyyy, r16.xyzw, r20.xyzw
      mad r20.xyzw, icb[r13.x + 0].zzzz, r17.xyzw, r20.xyzw
      mad r20.xyzw, icb[r13.x + 0].wwww, r18.xyzw, r20.xyzw
      add r20.xyz, r3.xyzx, -r20.xyzx
      dp3 r14.w, r20.xyzx, r20.xyzx
      div r19.w, r14.w, r20.w
      lt r20.w, l(0.000000), r19.w
      ge r21.x, l(1.000000), r19.w
      and r20.w, r20.w, r21.x
      if_nz r20.w
        sqrt r14.w, r14.w
        div r19.xyz, r20.xyzx, r14.wwww
        mov r13.w, r19.w
        break
      endif
      iadd r13.x, r13.x, l(1)
      mov r19.xyz, r20.xyzx
      mov r13.w, r19.w
    endloop
    ult r14.w, r13.x, cb0[280].y
    movc r13.x, r14.w, r13.x, l(-1)
    if_nz r0.x
      mov r15.xyz, -r3.xyzx
    else
      mov r15.x, cb1[r0.w + 0].z
      mov r15.y, cb1[r0.w + 1].z
      mov r15.z, cb1[r0.w + 2].z
    endif
    itof r0.x, r13.x
    ge r0.w, r0.x, l(0.000000)
    if_nz r0.w
      ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r16.xyzw, l(0), l(76), t16.xyzw
      ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r17.w, l(0), l(92), t16.xxxx
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r0.w, cb0[280].z, l(68), t4.xxxx
      ge r13.y, r13.y, l(0.000000)
      movc r13.y, r13.y, l(1.000000), l(-1.000000)
      mul r18.xyz, r10.xyzx, r13.yyyy
      ftoi r13.y, r16.x
      mov r17.xyz, r16.yzwy
      dp4 r14.w, r17.xyzw, icb[r13.x + 0].xyzw
      ge r15.w, l(0.000000), r14.w
      add r16.x, -r14.w, l(1.000000)
      add r13.w, r13.w, -r16.x
      div_sat r13.w, r13.w, r14.w
      movc r13.w, r15.w, l(0), r13.w
      dp3 r15.x, r15.xyzx, r19.xyzx
      add r14.w, r14.w, l(-1.000000)
      mul_sat r14.w, r14.w, l(-3.33333325)
      mad r15.y, r14.w, l(-2.000000), l(3.000000)
      mul r14.w, r14.w, r14.w
      mul r14.w, r14.w, r15.y
      mad r14.w, r14.w, l(512.000000), l(8.000000)
      mul_sat r14.w, r14.w, r15.x
      mad r13.w, r14.w, -r13.w, r13.w
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r15.xyzw, r0.w, l(0), t15.xyzw
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r16.xyzw, r0.w, l(16), t15.xyzw
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r17.x, r0.w, l(32), t15.xxxx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r14.w, r0.w, l(76), t15.xxxx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xy, r0.w, l(96), t15.xyxx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyz, r0.w, l(128), t15.xyzx
      iadd r18.w, r13.x, r0.w
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyz, r18.w, l(64), t15.xyzx
      add r20.xyz, r3.xyzx, r20.xyzx
      mul r14.w, r14.w, r21.z
      mul r18.xyz, r14.wwww, r18.xyzx
      iadd r14.w, r13.x, l(1)
      iadd r13.y, r13.y, l(-1)
      imin r14.w, r13.y, r14.w
      itof r14.w, r14.w
      ne r0.x, r0.x, r14.w
      lt r19.z, l(0.000000), r13.w
      and r0.x, r0.x, r19.z
      round_z r19.z, cb0[61].z
      mad r19.zw, r19.zzzz, l(0.000000, 0.000000, 2.083000, 4.867000), r0.yyyz
      dp2 r19.z, r19.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000)
      frc r19.z, r19.z
      mul r19.z, r19.z, l(52.982918)
      frc r19.z, r19.z
      ge r19.z, r13.w, r19.z
      and r0.x, r0.x, r19.z
      if_nz r0.x
        itof r0.x, r0.w
        add r0.x, r14.w, r0.x
        ftoi r0.x, r0.x
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyzw, r0.x, l(48), t15.zwxy
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r23.xyz, r0.x, l(36), t15.yxzx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r24.xyz, r0.x, l(64), t15.xyzx
        div r0.x, r24.z, r21.z
        mul r18.xyz, r0.xxxx, r18.xyzx
        mov r21.xy, r24.xyxx
        mov r24.x, r23.y
        mov r17.y, r23.z
      else
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyzw, r18.w, l(48), t15.zwxy
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r23.xyz, r18.w, l(36), t15.yxzx
        mov r24.x, r23.y
        mov r17.y, r23.z
      endif
      add r18.xyz, r18.xyzx, r20.xyzx
      mov r24.yzw, r15.xxyz
      mov r18.w, l(1.000000)
      dp4 r0.x, r24.yzwx, r18.xyzw
      mov r23.y, r15.w
      mov r23.zw, r16.xxxy
      dp4 r0.w, r23.yzwx, r18.xyzw
      mov r17.zw, r16.zzzw
      dp4 r15.x, r17.zwxy, r18.xyzw
      mul r16.xy, r0.xwxx, r22.zwzz
      mov r15.y, l(1.000000)
      dp2 r0.x, r22.xyxx, r15.xyxx
      mad_sat r15.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
      mul r15.xy, r19.xyxx, r15.xyxx
      mad r15.xy, r15.xyxx, cb0[83].zwzz, r21.xyxx
      add r0.x, r0.x, l(0.0000152587891)
      mad r15.zw, r15.xxxy, cb0[83].xxxy, l(0.000000, 0.000000, 0.500000, 0.500000)
      round_ni r15.zw, r15.zzzw
      mad r15.xy, r15.xyxx, cb0[83].xyxx, -r15.zwzz
      add r16.xyzw, r15.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000)
      mul r17.xyzw, r16.xxzz, r16.xxzz
      mul r18.yw, r17.yyyw, l(0.000000, 0.040816, 0.000000, 0.040816)
      mad r16.xz, r17.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), -r15.xxyx
      add r17.xy, -r15.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
      min r17.zw, r15.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000)
      mad r17.xy, -r17.zwzz, r17.zwzz, r17.xyxx
      max r17.zw, r15.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000)
      mad r16.yw, -r17.zzzw, r17.zzzw, r16.yyyw
      add r17.xy, r17.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000)
      add r16.yw, r16.yyyw, l(0.000000, 2.000000, 0.000000, 2.000000)
      mul r19.z, r16.y, l(0.081632)
      mul r20.xyz, r16.zxwz, l(0.081632, 0.081632, 0.081632, 0.000000)
      mul r16.xy, r17.xyxx, l(0.081632, 0.081632, 0.000000, 0.000000)
      mov r19.x, r20.y
      mad r19.yw, r15.xxxx, l(0.000000, -0.081632, 0.000000, 0.081632), l(0.000000, 0.163264, 0.000000, 0.081632)
      mad r17.xz, r15.xxxx, l(-0.081632, 0.000000, 0.081632, 0.000000), l(0.081632, 0.000000, 0.163264, 0.000000)
      mov r17.y, r16.x
      mov r17.w, r18.y
      add r19.xyzw, r17.xyzw, r19.xyzw
      mad r20.yw, r15.yyyy, l(0.000000, -0.081632, 0.000000, 0.081632), l(0.000000, 0.163264, 0.000000, 0.081632)
      mad r18.xz, r15.yyyy, l(-0.081632, 0.000000, 0.081632, 0.000000), l(0.081632, 0.000000, 0.163264, 0.000000)
      mov r18.y, r16.y
      add r16.xyzw, r18.xyzw, r20.xyzw
      div r17.xyzw, r17.xyzw, r19.xyzw
      add r17.xyzw, r17.xyzw, l(-3.500000, -1.500000, 0.500000, 2.500000)
      div r18.xyzw, r18.xyzw, r16.xyzw
      add r18.xyzw, r18.xyzw, l(-3.500000, -1.500000, 0.500000, 2.500000)
      mul r17.xyzw, r17.wxyz, cb0[83].zzzz
      mul r18.xyzw, r18.xwyz, cb0[83].wwww
      mov r20.xzw, r17.yyzw
      mov r20.y, r18.x
      mad r21.xyzw, r15.zwzw, cb0[83].zwzw, r20.xyzy
      mad r15.xy, r15.zwzz, cb0[83].zwzz, r20.wyww
      mov r17.y, r20.y
      mov r20.y, r18.z
      mad r22.xyzw, r15.zwzw, cb0[83].zwzw, r20.xyzy
      mad r23.xy, r15.zwzz, cb0[83].zwzz, r20.wyww
      mov r17.z, r20.y
      mad r24.xyzw, r15.zwzw, cb0[83].zwzw, r17.xyxz
      mov r20.y, r18.w
      mad r25.xyzw, r15.zwzw, cb0[83].zwzw, r20.xyzy
      mad r17.yz, r15.zzwz, cb0[83].zzwz, r20.wwyw
      mov r17.w, r20.y
      mad r23.zw, r15.zzzw, cb0[83].zzzw, r17.xxxw
      mov r18.xzw, r20.xxzw
      mad r20.xyzw, r15.zwzw, cb0[83].zwzw, r18.xyzy
      mad r18.zw, r15.zzzw, cb0[83].zzzw, r18.wwwy
      mov r18.x, r17.x
      mad r15.zw, r15.zzzw, cb0[83].zzzw, r18.xxxy
      mul r26.xyzw, r16.xxxx, r19.xyzw
      mul r27.xyzw, r16.yyyy, r19.xyzw
      mul r28.xyzw, r16.zzzz, r19.xyzw
      mul r16.xyzw, r16.wwww, r19.xyzw
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r21.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r14.w, r21.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r15.x, r15.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r15.y, r24.xyxx, t14.xxxx, s2, r0.x
      mov r17.xw, l(0,0,0,0)
      loop
        ige r18.x, r17.w, l(1)
        breakc_nz r18.x
        mad r18.x, r26.x, r0.w, r17.x
        mad r18.x, r26.y, r14.w, r18.x
        mad r18.x, r26.z, r15.x, r18.x
        mad r17.x, r26.w, r15.y, r18.x
        iadd r17.w, r17.w, l(1)
      endloop
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r22.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r14.w, r22.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r15.x, r23.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r15.y, r24.zwzz, t14.xxxx, s2, r0.x
      mov r17.w, r17.x
      mov r18.x, l(0)
      loop
        ige r18.y, r18.x, l(1)
        breakc_nz r18.y
        mad r18.y, r27.x, r0.w, r17.w
        mad r18.y, r27.y, r14.w, r18.y
        mad r18.y, r27.z, r15.x, r18.y
        mad r17.w, r27.w, r15.y, r18.y
        iadd r18.x, r18.x, l(1)
      endloop
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r25.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r14.w, r25.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r15.x, r17.yzyy, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r15.y, r23.zwzz, t14.xxxx, s2, r0.x
      mov r17.x, r17.w
      mov r17.y, l(0)
      loop
        ige r17.z, r17.y, l(1)
        breakc_nz r17.z
        mad r17.z, r28.x, r0.w, r17.x
        mad r17.z, r28.y, r14.w, r17.z
        mad r17.z, r28.z, r15.x, r17.z
        mad r17.x, r28.w, r15.y, r17.z
        iadd r17.y, r17.y, l(1)
      endloop
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r20.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r14.w, r20.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r15.x, r18.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r15.zwzz, t14.xxxx, s2, r0.x
      mov r15.y, r17.x
      mov r15.z, l(0)
      loop
        ige r15.w, r15.z, l(1)
        breakc_nz r15.w
        mad r15.w, r16.x, r0.w, r15.y
        mad r15.w, r16.y, r14.w, r15.w
        mad r15.w, r16.z, r15.x, r15.w
        mad r15.y, r16.w, r0.x, r15.w
        iadd r15.z, r15.z, l(1)
      endloop
      ilt r0.x, r13.x, r13.y
      add r0.w, -r15.y, l(1.000000)
      mad r0.w, r13.w, r0.w, r15.y
      movc r0.x, r0.x, r15.y, r0.w
    else
      mov r0.x, l(1.000000)
    endif
    mov r13.xyw, r0.xxxx
  else
    mov r13.xyw, l(1.000000,1.000000,0,1.000000)
  endif
else
  mov r13.xyw, l(1.000000,1.000000,0,1.000000)
endif
imad r0.x, r1.y, cb0[289].x, r1.x
imul null, r0.w, r2.z, cb0[289].x
imul null, r0.w, r0.w, cb0[289].y
imad r0.x, r0.w, l(6), r0.x
ishl r0.x, r0.x, l(4)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.w, r0.x, l(0), t3.xxxx
and r0.w, r0.w, l(0x0000ffff)
mad r1.x, -r11.w, l(0.00392156886), l(1.000000)
max r1.y, -cb0[287].z, l(0.000000)
round_pi r1.y, r1.y
exp r1.y, r1.y
add r11.w, -r7.w, l(1.000000)
mul r14.w, r11.w, r11.w
mul r14.w, r14.w, r14.w
mul r11.w, r11.w, r14.w
mov r15.xz, l(1.000000,0,1.000000,0)
mov r16.w, l(1.000000)
mov r17.w, l(1.000000)
mov r18.w, l(1.000000)
mov r19.w, l(1.000000)
mov r20.w, l(1.000000)
mov r21.xyzw, l(0,0,0,0)
mov r22.yz, l(0,0,0,0)
mov r14.w, l(0)
loop
  uge r15.w, r14.w, r0.w
  breakc_nz r15.w
  iadd r14.w, r14.w, l(1)
  ushr r15.w, r14.w, l(1)
  iadd r15.w, r0.x, r15.w
  ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t3.xxxx
  bfi r22.w, l(1), l(4), r14.w, l(0)
  ushr r15.w, r15.w, r22.w
  and r15.w, r15.w, l(0x0000ffff)
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r23.xyzw, r15.w, l(0), t5.xyzw
  and r22.w, r3.w, r23.w
  if_nz r22.w
    ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r22.w, r15.w, l(16), t5.xxxx
    ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r24.xyzw, r15.w, l(24), t5.xyzw
    ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r25.xyzw, r15.w, l(40), t5.xyzw
    add r23.xyz, r3.xyzx, -r23.xyzx
    ieq r23.w, r25.z, l(4)
    mov r26.xy, r24.zwzz
    mov r26.z, r25.x
    dp3 r27.y, -r23.xyzx, -r23.xyzx
    rsq r24.z, r27.y
    mul r28.xyz, -r23.xyzx, r24.zzzz
    movc r28.xyz, r23.wwww, -r26.xyzx, r28.xyzx
    lt r22.w, l(0.000000), r22.w
    dp3 r24.w, r10.xyzx, r28.xyzx
    lt r25.x, l(0.000000), r24.w
    and r22.w, r22.w, r25.x
    if_nz r22.w
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r29.xyzw, r15.w, l(56), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r30.xyzw, r15.w, l(72), t5.zwxy
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r31.xyzw, r15.w, l(88), t5.yzwx
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r32.xyzw, r15.w, l(104), t5.yzxw
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r33.xyzw, r15.w, l(120), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r34.xy, r15.w, l(136), t5.xyxx
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r22.w, r15.w, l(176), t5.xxxx
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r35.xyz, r15.w, l(192), t5.xyzx
      ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r36.xy, r15.w, l(216), t5.xyxx
      dp3 r26.z, r23.xyzx, r26.xyzx
      mul r15.y, r26.z, r26.z
      mul r27.x, r24.z, r27.y
      add r22.w, r22.w, r27.y
      rsq r27.z, r22.w
      movc r27.yzw, r23.wwww, r15.xxyz, r27.xxyz
      mul r15.y, r26.z, r27.w
      min r22.w, r27.w, l(100.000000)
      mul r24.z, r31.x, r27.z
      mad_sat r24.z, -r24.z, r24.z, r32.x
      mul r22.w, r22.w, r24.z
      mad_sat r15.y, r15.y, r24.x, r24.y
      mul r15.y, r15.y, r22.w
      mul r15.y, r15.y, r15.y
      movc r22.w, r23.w, r26.z, r27.x
      max r23.w, |r28.y|, l(0.001000)
      rcp r24.x, r23.w
      mad r24.y, r22.w, r28.y, r3.y
      min r24.y, r3.y, r24.y
      add r24.z, r24.y, -cb0[74].y
      add r24.y, -r24.y, cb0[74].y
      mul r24.y, r24.x, r24.y
      max r24.yz, r24.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000)
      min r24.y, r22.w, r24.y
      add r22.w, r22.w, -r24.y
      mul r24.z, -r24.z, cb0[75].x
      mul r24.z, r24.z, l(1.442695)
      exp r24.z, r24.z
      mul r22.w, r23.w, -r22.w
      mul r22.w, r22.w, cb0[75].x
      mul r22.w, r22.w, l(1.442695)
      exp r22.w, r22.w
      add r22.w, -r22.w, l(1.000000)
      mul r22.w, r22.w, r24.z
      mul r23.w, r24.x, cb0[75].y
      mad r22.w, r22.w, r23.w, r24.y
      mul r22.w, r22.w, cb0[74].x
      mul r22.w, r22.w, l(-1.442695)
      exp r22.w, r22.w
      mul r31.x, r15.y, r22.w
      if_nz r30.z
        mov r24.x, r25.w
        mov r24.yz, r29.xxyx
        dp3 r26.x, r23.xyzx, r24.xyzx
        mov r30.z, r31.w
        dp3 r26.y, r23.xyzx, r30.xyzx
        ieq r15.y, r25.z, l(1)
        if_nz r15.y
          dp3 r15.y, |r26.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
          rcp r15.y, r15.y
          mul r23.xyz, r15.yyyy, r26.zxyz
          mov_sat r23.x, -r23.x
          ge r23.yz, r23.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000)
          movc r23.xy, r23.yzyy, r23.xxxx, -r23.xxxx
          mad r23.xy, r26.xyxx, r15.yyyy, r23.xyxx
          mad_sat r23.xy, r23.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
          add r23.zw, r32.yyyw, cb0[287].yyyy
          rcp r23.zw, r23.zzzw
          mul r24.xy, r32.ywyy, r23.zwzz
          mad r23.zw, -r23.zzzw, r32.yyyw, l(0.000000, 0.000000, 1.000000, 1.000000)
          mul r23.zw, r23.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
          mul r25.xw, r32.yyyw, cb0[287].xxxx
          add r25.xw, r25.xxxw, r25.xxxw
          div r25.xw, r1.yyyy, r25.xxxw
          mad r23.xy, r23.xyxx, r24.xyxx, r23.zwzz
          add r23.zw, -r25.xxxw, l(0.000000, 0.000000, 1.000000, 1.000000)
          max r23.xy, r25.xwxx, r23.xyxx
          min r23.xy, r23.zwzz, r23.xyxx
          mad r23.xy, r23.xyxx, r32.ywyy, r33.xyxx
          sample_l_indexable(texture2d)(float,float,float,float) r16.xyz, r23.xyxx, t6.xyzw, s1, l(0.000000)
          mov r23.xyzw, r16.xyzw
        else
          ine r16.xy, r25.zzzz, l(4, 3, 0, 0)
          movc r15.y, r16.x, r26.z, l(1.000000)
          div r24.xy, r26.xyxx, r15.yyyy
          mad r15.y, -r29.w, l(0.500000), r26.z
          mad r15.y, -r29.w, l(0.500000), |r15.y|
          add r15.y, r15.y, l(1.000000)
          max r16.z, |r24.y|, |r24.x|
          max r15.y, r15.y, r16.z
          ge r15.y, r36.y, r15.y
          and r16.x, r16.x, r16.y
          dp2 r16.y, r24.xyxx, r24.xyxx
          mul r16.z, r25.y, r25.y
          ge r16.y, r16.z, r16.y
          and r16.y, r15.y, r16.y
          movc r15.y, r16.x, r16.y, r15.y
          mad r16.xy, r24.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
          add r24.xy, r32.ywyy, cb0[287].yyyy
          rcp r24.xy, r24.xyxx
          mul r25.xy, r32.ywyy, r24.xyxx
          mad r24.xy, -r24.xyxx, r32.ywyy, l(1.000000, 1.000000, 0.000000, 0.000000)
          mul r24.xy, r24.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
          mul r26.xy, r32.ywyy, cb0[287].xxxx
          add r26.xy, r26.xyxx, r26.xyxx
          div r26.xy, r1.yyyy, r26.xyxx
          mad r16.xy, r16.xyxx, r25.xyxx, r24.xyxx
          add r24.xy, -r26.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
          max r16.xy, r26.xyxx, r16.xyxx
          min r16.xy, r24.xyxx, r16.xyxx
          mad r16.xy, r16.xyxx, r32.ywyy, r33.xyxx
          sample_l_indexable(texture2d)(float,float,float,float) r23.xyz, r16.xyxx, t6.xyzw, s1, l(0.000000)
          and r23.w, r15.y, l(0x3f800000)
        endif
        mov r31.w, r32.z
        mul r31.xyzw, r23.wxyz, r31.xyzw
        mov r32.xyz, r31.yzwy
      else
        mov r32.xy, r31.yzyy
      endif
      mul r16.xyz, r31.xxxx, r32.xyzx
      ige r15.y, r30.w, l(0)
      lt r22.w, l(0.000000), r34.y
      and r15.y, r15.y, r22.w
      if_nz r15.y
        ieq r15.y, r25.z, l(1)
        ine r22.w, r25.z, l(4)
        ge r23.x, r24.w, l(0.000000)
        movc r23.x, r23.x, l(1.000000), l(-1.000000)
        mul r23.xyz, r10.xyzx, r23.xxxx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r25.xyzw, r30.w, l(32), t15.xyzw
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r26.xyzw, r30.w, l(48), t15.xyzw
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r31.xyzw, r30.w, l(64), t15.xyzw
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r24.xy, r30.w, l(96), t15.xyxx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r32.xyzw, r30.w, l(128), t15.xyzw
        if_nz r15.y
          itof r15.y, r30.w
          ge r23.w, |r28.z|, |r28.x|
          ge r24.z, |r28.z|, |r28.y|
          and r23.w, r23.w, r24.z
          lt r27.xzw, -r28.zzyx, l(0.000000, 0.000000, 0.000000, 0.000000)
          ge r24.z, |r28.y|, |r28.x|
          movc r27.xz, r27.xxzx, l(5.000000,0,3.000000,0), l(4.000000,0,2.000000,0)
          and r27.w, r27.w, l(0x3f800000)
          movc r24.z, r24.z, r27.z, r27.w
          movc r23.w, r23.w, r27.x, r24.z
          add r15.y, r15.y, r23.w
          ftou r15.y, r15.y
          ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r37.xyz, r15.y, l(0), t15.xyzx
          ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r38.xyz, r15.y, l(12), t15.xyzx
          ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r39.xyz, r15.y, l(24), t15.xyzx
          ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r31.xy, r15.y, l(64), t15.xyxx
        else
          ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r38.xyzw, r30.w, l(0), t15.wxyz
          ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r39.xyzw, r30.w, l(16), t15.zwxy
          mov r37.xyz, r38.yzwy
          mov r38.yz, r39.zzwz
          mov r39.z, r25.x
        endif
        lt r15.y, l(0.000000), r32.w
        if_nz r15.y
          ne r15.y, l(0.000000, 0.000000, 0.000000, 0.000000), r32.w
          movc r27.xz, r15.yyyy, cb0[85].zzwz, cb0[82].zzwz
          add r29.xyw, r3.xyxz, r32.xyxz
          mul r23.w, r27.y, r31.z
          mul r23.w, r23.w, r31.w
          mad r17.xyz, r23.xyzx, r23.wwww, r29.xywx
          add r29.xyw, -r25.yzyw, r17.xyxz
          dp3 r30.x, r37.xyzx, r29.xywx
          dp3 r30.y, r38.xyzx, r29.xywx
          dp3 r30.z, r39.xyzx, r29.xywx
          mov r37.w, r25.y
          dp4 r40.x, r37.xyzw, r17.xyzw
          mov r38.w, r25.z
          dp4 r40.y, r38.xyzw, r17.xyzw
          mov r39.w, r25.w
          dp4 r40.z, r39.xyzw, r17.xyzw
          movc r18.xyz, r22.wwww, r30.xyzx, r40.xyzx
          movc r17.xy, r22.wwww, l(-1.000000,0,0,0), l(0,1.000000,0,0)
          mul r30.xy, r18.xyxx, r26.xyxx
          dp2 r30.z, r26.zwzz, r18.zwzz
          dp2 r17.x, r17.xyxx, r18.zwzz
          ne r17.y, r17.x, l(0.000000)
          and r17.y, r17.y, r22.w
          div r18.xyz, r30.xyzx, r17.xxxx
          movc r17.xyz, r17.yyyy, r18.xyzx, r30.xyzx
          mad_sat r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
          mul r17.xy, r24.xyxx, r17.xyxx
          mad r17.xy, r17.xyxx, r27.xzxx, r31.xyxx
          add r18.xy, r24.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
          mad r18.xy, r18.xyxx, r27.xzxx, r31.xyxx
          lt r18.xy, r18.xyxx, r17.xyxx
          lt r27.xz, r17.xxyx, r31.xxyx
          or r18.xy, r18.xyxx, r27.xzxx
          or r18.x, r18.y, r18.x
          movc r30.xyzw, r15.yyyy, cb0[85].zwxy, cb0[82].zwxy
          add r15.y, r17.z, l(0.0000152587891)
          mad r18.yz, r17.xxyx, r30.zzwz, l(0.000000, 0.500000, 0.500000, 0.000000)
          round_ni r18.yz, r18.yyzy
          mad r17.xy, r17.xyxx, r30.zwzz, -r18.yzyy
          add r40.xyzw, r17.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000)
          mul r41.xyzw, r40.xxzz, r40.xxzz
          mul r27.xz, r41.yywy, l(0.080000, 0.000000, 0.080000, 0.000000)
          mad r29.xy, r41.xzxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r17.xyxx
          add r30.zw, -r17.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000)
          min r33.xy, r17.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
          mad r33.xy, -r33.xyxx, r33.xyxx, r30.zwzz
          max r17.xy, r17.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
          mad r17.xy, -r17.xyxx, r17.xyxx, r40.ywyy
          add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
          add r17.xy, r17.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
          mul r41.xy, r29.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000)
          mul r42.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000)
          mul r43.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000)
          mul r44.xy, r17.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000)
          mul r17.xy, r40.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000)
          mov r41.z, r43.x
          mov r41.w, r17.x
          mov r42.z, r44.x
          mov r42.w, r27.x
          add r40.xyzw, r41.zwxz, r42.zwxz
          mov r43.z, r41.y
          mov r43.w, r17.y
          mov r44.z, r42.y
          mov r44.w, r27.z
          add r17.xyz, r43.zywz, r44.zywz
          div r27.xzw, r42.xxzw, r40.zzwy
          add r27.xzw, r27.xxzw, l(-2.500000, 0.000000, -0.500000, 1.500000)
          div r29.xyw, r44.zyzw, r17.xyxz
          add r29.xyw, r29.xyxw, l(-2.500000, -0.500000, 0.000000, 1.500000)
          mul r41.xyz, r30.xxxx, r27.zxwz
          mul r42.xyz, r30.yyyy, r29.xywx
          mov r41.w, r42.x
          mad r43.xyzw, r18.yzyz, r30.xyxy, r41.ywxw
          mad r27.xz, r18.yyzy, r30.xxyx, r41.zzwz
          mov r42.w, r41.y
          mov r41.yw, r42.yyyz
          mad r44.xyzw, r18.yzyz, r30.xyxy, r41.xyzy
          mad r42.xyzw, r18.yzyz, r30.xyxy, r42.wywz
          mad r30.xyzw, r18.yzyz, r30.xyxy, r41.xwzw
          mul r41.xyzw, r17.xxxy, r40.zwyz
          mul r45.xyzw, r17.yyzz, r40.xyzw
          mul r17.x, r17.z, r40.y
          sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r43.xyxx, t13.xxxx, s2, r15.y
          sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r43.zwzz, t13.xxxx, s2, r15.y
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r27.xzxx, t13.xxxx, s2, r15.y
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r42.xyxx, t13.xxxx, s2, r15.y
          mov r23.w, l(0)
          mov r24.z, l(0)
          loop
            ige r27.x, r24.z, l(1)
            breakc_nz r27.x
            mad r27.x, r41.x, r17.y, r23.w
            mad r27.x, r41.y, r17.z, r27.x
            mad r27.x, r41.z, r18.y, r27.x
            mad r23.w, r41.w, r18.z, r27.x
            iadd r24.z, r24.z, l(1)
          endloop
          sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r44.xyxx, t13.xxxx, s2, r15.y
          sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r44.zwzz, t13.xxxx, s2, r15.y
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r42.zwzz, t13.xxxx, s2, r15.y
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.xyxx, t13.xxxx, s2, r15.y
          mov r24.z, r23.w
          mov r27.x, l(0)
          loop
            ige r27.z, r27.x, l(1)
            breakc_nz r27.z
            mad r27.z, r45.x, r17.y, r24.z
            mad r27.z, r45.y, r17.z, r27.z
            mad r27.z, r45.z, r18.y, r27.z
            mad r24.z, r45.w, r18.z, r27.z
            iadd r27.x, r27.x, l(1)
          endloop
          sample_c_lz_indexable(texture2d)(float,float,float,float) r15.y, r30.zwzz, t13.xxxx, s2, r15.y
          mad r15.y, r17.x, r15.y, r24.z
          movc r15.y, r18.x, l(1.000000), r15.y
        else
          ne r17.x, l(0.000000, 0.000000, 0.000000, 0.000000), r32.w
          movc r17.yz, r17.xxxx, cb0[85].zzwz, cb0[82].zzwz
          add r18.xyz, r3.xyzx, r32.xyzx
          mul r27.x, r27.y, r31.z
          mul r27.x, r27.x, r31.w
          mad r19.xyz, r23.xyzx, r27.xxxx, r18.xyzx
          add r18.xyz, -r25.yzwy, r19.xyzx
          dp3 r23.x, r37.xyzx, r18.xyzx
          dp3 r23.y, r38.xyzx, r18.xyzx
          dp3 r23.z, r39.xyzx, r18.xyzx
          mov r37.w, r25.y
          dp4 r18.x, r37.xyzw, r19.xyzw
          mov r38.w, r25.z
          dp4 r18.y, r38.xyzw, r19.xyzw
          mov r25.xyz, r39.xyzx
          dp4 r18.z, r25.xyzw, r19.xyzw
          movc r20.xyz, r22.wwww, r23.xyzx, r18.xyzx
          movc r18.xy, r22.wwww, l(-1.000000,0,0,0), l(0,1.000000,0,0)
          mul r19.xy, r20.xyxx, r26.xyxx
          dp2 r19.z, r26.zwzz, r20.zwzz
          dp2 r18.x, r18.xyxx, r20.zwzz
          ne r18.y, r18.x, l(0.000000)
          and r18.y, r18.y, r22.w
          div r20.xyz, r19.xyzx, r18.xxxx
          movc r18.xyz, r18.yyyy, r20.xyzx, r19.xyzx
          mad_sat r18.xy, r18.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
          mul r18.xy, r24.xyxx, r18.xyxx
          mad r18.xy, r18.xyxx, r17.yzyy, r31.xyxx
          add r19.xy, r24.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
          mad r17.yz, r19.xxyx, r17.yyzy, r31.xxyx
          lt r17.yz, r17.yyzy, r18.xxyx
          lt r19.xy, r18.xyxx, r31.xyxx
          or r17.yz, r17.yyzy, r19.xxyx
          or r17.y, r17.z, r17.y
          movc r25.xyzw, r17.xxxx, cb0[85].zwxy, cb0[82].zwxy
          add r17.x, r18.z, l(0.0000152587891)
          mad r19.xy, r18.xyxx, r25.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000)
          round_ni r19.xy, r19.xyxx
          mad r18.xy, r18.xyxx, r25.zwzz, -r19.xyxx
          add r26.xyzw, r18.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000)
          mul r27.xyzw, r26.xxzz, r26.xxzz
          mul r20.xy, r27.ywyy, l(0.080000, 0.080000, 0.000000, 0.000000)
          mad r23.xy, r27.xzxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r18.xyxx
          add r24.xy, -r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
          min r25.zw, r18.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000)
          mad r25.zw, -r25.zzzw, r25.zzzw, r24.xxxy
          max r18.xy, r18.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
          mad r18.xy, -r18.xyxx, r18.xyxx, r26.ywyy
          add r25.zw, r25.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000)
          add r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
          mul r27.xy, r23.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000)
          mul r30.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000)
          mul r31.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000)
          mul r32.xy, r18.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000)
          mul r18.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000)
          mov r27.z, r31.x
          mov r27.w, r18.x
          mov r30.z, r32.x
          mov r30.w, r20.x
          add r26.xyzw, r27.zwxz, r30.zwxz
          mov r31.z, r27.y
          mov r31.w, r18.y
          mov r32.z, r30.y
          mov r32.w, r20.y
          add r18.xyz, r31.zywz, r32.zywz
          div r20.xyz, r30.xzwx, r26.zwyz
          add r20.xyz, r20.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000)
          div r23.xyz, r32.zywz, r18.xyzx
          add r23.xyz, r23.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000)
          mul r27.xyz, r25.xxxx, r20.yxzy
          mul r30.xyz, r25.yyyy, r23.xyzx
          mov r27.w, r30.x
          mad r31.xyzw, r19.xyxy, r25.xyxy, r27.ywxw
          mad r20.xy, r19.xyxx, r25.xyxx, r27.zwzz
          mov r30.w, r27.y
          mov r27.yw, r30.yyyz
          mad r32.xyzw, r19.xyxy, r25.xyxy, r27.xyzy
          mad r30.xyzw, r19.xyxy, r25.xyxy, r30.wywz
          mad r25.xyzw, r19.xyxy, r25.xyxy, r27.xwzw
          mul r27.xyzw, r18.xxxy, r26.zwyz
          mul r37.xyzw, r18.yyzz, r26.xyzw
          mul r17.z, r18.z, r26.y
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.xyxx, t12.xxxx, s2, r17.x
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r31.zwzz, t12.xxxx, s2, r17.x
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r20.xyxx, t12.xxxx, s2, r17.x
          sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r30.xyxx, t12.xxxx, s2, r17.x
          mov r19.yz, l(0,0,0,0)
          loop
            ige r20.x, r19.z, l(1)
            breakc_nz r20.x
            mad r20.x, r27.x, r18.x, r19.y
            mad r20.x, r27.y, r18.y, r20.x
            mad r20.x, r27.z, r18.z, r20.x
            mad r19.y, r27.w, r19.x, r20.x
            iadd r19.z, r19.z, l(1)
          endloop
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r32.xyxx, t12.xxxx, s2, r17.x
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r32.zwzz, t12.xxxx, s2, r17.x
          sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.zwzz, t12.xxxx, s2, r17.x
          sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r25.xyxx, t12.xxxx, s2, r17.x
          mov r19.z, r19.y
          mov r20.x, l(0)
          loop
            ige r20.y, r20.x, l(1)
            breakc_nz r20.y
            mad r20.y, r37.x, r18.x, r19.z
            mad r20.y, r37.y, r18.y, r20.y
            mad r20.y, r37.z, r18.z, r20.y
            mad r19.z, r37.w, r19.x, r20.y
            iadd r20.x, r20.x, l(1)
          endloop
          sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r25.zwzz, t12.xxxx, s2, r17.x
          mad r17.x, r17.z, r17.x, r19.z
          movc r15.y, r17.y, l(1.000000), r17.x
        endif
        add r15.y, r15.y, l(-1.000000)
        mad r15.y, r34.y, r15.y, l(1.000000)
      else
        mov r15.y, l(1.000000)
      endif
      and r17.x, r10.w, r35.x
      movc r17.x, r17.x, l(1.000000), l(0)
      mad r17.y, r36.x, r1.x, r12.w
      mul r17.x, r17.y, r17.x
      mad r17.x, -r17.x, cb0[282].z, l(1.000000)
      min r15.y, r15.y, r17.x
      mov r34.zw, r33.zzzw
      add r17.xyz, -r34.zwxz, l(1.000000, 1.000000, 1.000000, 0.000000)
      mul r18.x, r15.y, r15.y
      mul r18.x, r15.y, r18.x
      add r18.y, -r15.y, l(1.000000)
      mad r20.xyz, -r18.yyyy, r17.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      mul r23.xyz, r34.zwxz, r15.yyyy
      mad r17.xyz, r18.xxxx, r17.xyzx, r23.xyzx
      add r17.xyz, -r20.xyzx, r17.xyzx
      mad r17.xyz, r29.zzzz, r17.xyzx, r20.xyzx
      mul r16.xyz, r16.xyzx, r17.xyzx
      max r15.y, r16.y, r16.x
      max r15.y, r16.z, r15.y
      lt r15.y, l(0.000000), r15.y
      if_nz r15.y
        ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r15.y, r15.w, l(152), t5.xxxx
        max r15.y, r6.z, r15.y
        mov_sat r15.w, r24.w
        dp3 r17.x, r28.xyzx, r4.xyzx
        mad r17.y, r17.x, l(2.000000), l(2.000000)
        max r17.y, r17.y, l(5.960464478E-08)
        rsq r17.y, r17.y
        add r17.z, r6.w, r24.w
        mul_sat r17.z, r17.y, r17.z
        mad_sat r17.y, r17.y, r17.x, r17.y
        add r17.y, -r17.y, l(1.000000)
        mul r18.x, r17.y, r17.y
        mul r18.x, r18.x, r18.x
        mul r18.y, r17.y, r18.x
        mad r17.y, -r18.x, r17.y, l(1.000000)
        mad r18.xyz, r12.xyzx, r17.yyyy, r18.yyyy
        mul r15.y, r15.y, r15.y
        mad r17.y, r17.z, r15.y, -r17.z
        mad r17.y, r17.y, r17.z, l(1.000000)
        mad r17.z, -|r24.w|, r15.y, |r24.w|
        mad r17.z, r17.z, |r24.w|, r15.y
        sqrt r17.z, r17.z
        mul r17.z, r7.w, r17.z
        mul r17.y, r17.y, r17.y
        mad r17.z, |r24.w|, r9.w, r17.z
        mul r15.y, r15.y, l(0.159154937)
        mul r17.y, r17.z, r17.y
        max r17.y, r17.y, l(1.175494351E-38)
        div r15.y, r15.y, r17.y
        mul r18.xyz, r15.yyyy, r18.xyzx
        mad r15.y, r6.y, r17.x, r6.y
        add r17.x, -|r24.w|, l(1.000000)
        mul r17.y, r17.x, r17.x
        mul r17.y, r17.y, r17.y
        mul r17.x, r17.x, r17.y
        add r15.y, r15.y, l(-0.500000)
        mad r17.x, r15.y, r17.x, l(1.000000)
        mad r15.y, r15.y, r11.w, l(1.000000)
        mul r15.y, r15.y, r17.x
        mul r15.y, r15.y, r15.w
        mul r15.y, r15.y, l(0.307334960)
        mul r17.xyz, r15.wwww, r18.xyzx
        mul r18.xyz, r16.xyzx, r15.yyyy
        mul r18.xyz, r35.yyyy, r18.xyzx
        mul r16.xyz, r16.xyzx, r17.xyzx
        mul r16.xyz, r35.zzzz, r16.xyzx
      else
        mov r18.xyz, l(0,0,0,0)
        mov r16.xyz, l(0,0,0,0)
      endif
    else
      mov r18.xyz, l(0,0,0,0)
      mov r16.xyz, l(0,0,0,0)
    endif
    add r21.xyz, r18.xyzx, r21.xyzx
    mov r22.x, r21.w
    add r22.xyz, r16.xyzx, r22.xyzx
    mov r21.w, r22.x
  endif
endloop
ld_indexable(texture2darray)(float,float,float,float) r15.xyzw, r2.xyzw, t11.xyzw
ld_indexable(texture2d)(float,float,float,float) r0.x, l(0, 0, 0, 0), t2.xyzw
mul r0.w, r0.x, cb0[282].y
eq r0.w, r0.w, l(0.000000)
and r0.w, r0.w, l(0x3f800000)
mad r0.x, r0.x, cb0[282].y, r0.w
rcp r0.x, r0.x
movc r0.x, cb0[360].y, l(1.000000), r0.x
mul r15.xyz, r0.xxxx, r15.xyzx
mul r15.xyz, r15.wwww, r15.xyzx
mul r15.xyz, r14.xyzx, r15.xyzx
if_nz cb0[280].x
  lt r0.x, r15.w, l(1.000000)
  if_nz r0.x
    dp3 r0.x, -r4.xyzx, r10.xyzx
    add r0.x, r0.x, r0.x
    mad r16.xyz, r10.xyzx, -r0.xxxx, -r4.xyzx
    mad r0.x, -r6.y, r6.y, l(1.000000)
    sqrt r0.w, r0.x
    mad r0.w, r6.y, r6.y, r0.w
    mul r14.w, r7.w, r7.w
    mul r14.w, r0.x, r14.w
    mad_sat r0.x, r0.x, r0.x, r14.w
    mul r0.x, r0.x, r0.w
    mad r9.xyz, -r9.xyzx, r4.wwww, r16.xyzx
    mad r9.xyz, r0.xxxx, r9.xyzx, r10.xyzx
    min r0.x, r8.w, l(1.000000)
    mad r0.w, r0.x, l(-2.000000), l(3.000000)
    mul r0.x, r0.x, r0.x
    mul r0.x, r0.x, r0.w
    min r0.x, r0.x, l(1.000000)
    add r16.xyz, -r9.xyzx, r16.xyzx
    mad r16.xyz, r0.xxxx, r16.xyzx, r9.xyzx
    mad r0.x, -r6.y, l(0.700000), l(1.700000)
    mul r0.x, r0.x, r6.y
    mul r0.x, r0.x, l(6.000000)
    mov r16.w, l(0)
    sample_l_indexable(texturecubearray)(float,float,float,float) r9.xyz, r16.xyzw, t9.xyzw, s1, r0.x
    min r9.xyz, r9.xyzx, l(65504.000000, 65504.000000, 65504.000000, 0.000000)
    mul r9.xyz, r9.xyzx, r14.xyzx
    add r0.x, r15.w, l(1.000000)
    mov_sat r0.w, r0.x
    add_sat r0.x, -r0.w, r0.x
    add r0.x, -r0.x, l(1.000000)
    movc r0.x, cb0[281].x, r0.x, l(0)
    mad r15.xyz, r9.xyzx, r0.xxxx, r15.xyzx
  endif
endif
add r9.xyz, r13.xywx, l(-1.000000, -1.000000, -1.000000, 0.000000)
add r13.xyw, r3.xyxz, cb1[r2.z + 96].xyxz
add r13.xyw, r13.xyxw, -cb2[7].xyxz
dp3 r0.x, r13.xywx, r13.xywx
sqrt r0.x, r0.x
rcp r0.w, r0.x
mul r4.w, r0.w, cb2[0].x
mad r4.w, -r4.w, r4.w, l(1.000000)
max r4.w, r4.w, l(0.000000)
sqrt r4.w, r4.w
mul r14.xy, r0.xxxx, cb2[2].xzxx
mad r14.zw, cb2[2].xxxz, cb2[0].xxxx, -r14.xxxy
mul r14.zw, r14.zzzw, l(0.000000, 0.000000, 1.442695, 1.442695)
mad r16.xy, r14.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(1.000000, 1.000000, 0.000000, 0.000000)
exp r14.zw, r14.zzzw
dp2 r0.x, r5.wwww, r5.wwww
mov r17.xyz, r21.xyzx
mov r18.x, r21.w
mov r18.yz, r22.yyzy
mov r8.w, l(0)
loop
  uge r15.w, r8.w, cb0[279].x
  breakc_nz r15.w
  ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r15.w, r8.w, l(12), t4.xxxx
  and r15.w, r3.w, r15.w
  if_nz r15.w
    ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r15.w, r8.w, l(16), t4.xxxx
    ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r19.xyzw, r8.w, l(24), t4.xyzw
    lt r15.w, l(0.000000), r15.w
    dp3 r16.z, r10.xyzx, -r19.xyzx
    lt r16.w, l(0.000000), r16.z
    and r15.w, r15.w, r16.w
    if_nz r15.w
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r20.xyzw, r8.w, l(56), t4.xyzw
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r23.xyzw, r8.w, l(88), t4.xyzw
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r24.xyzw, r8.w, l(104), t4.xyzw
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r25.xyzw, r8.w, l(152), t4.xyzw
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r15.w, r8.w, l(168), t4.xxxx
      max r16.w, |r19.y|, l(5.960464478E-08)
      rcp r16.w, r16.w
      ge r17.w, -r19.y, l(0.000000)
      movc r17.w, r17.w, r3.y, l(-16777216.000000)
      add r18.w, r17.w, -cb0[74].y
      max r18.w, r18.w, l(0.000000)
      add r17.w, -r17.w, cb0[74].y
      mul r17.w, r16.w, r17.w
      max r17.w, r17.w, l(0.000000)
      mul r18.w, -r18.w, cb0[75].x
      mul r18.w, r18.w, l(1.442695)
      exp r18.w, r18.w
      mul r16.w, r16.w, cb0[75].y
      mad r16.w, r18.w, r16.w, r17.w
      mul r16.w, r16.w, cb0[74].x
      mul r16.w, r16.w, l(-1.442695)
      exp r16.w, r16.w
      mul r23.xyz, r16.wwww, r23.xyzx
      ige r15.w, r15.w, l(0)
      if_nz r15.w
        dp3 r15.w, r13.xywx, -r19.xyzx
        mul r15.w, r0.w, r15.w
        ge r16.w, r15.w, -r4.w
        if_nz r16.w
          mad r16.w, -r15.w, r15.w, l(1.000000)
          max r16.w, r16.w, l(0.000000)
          sqrt r16.w, r16.w
          mul r17.w, |r15.w|, |r15.w|
          mul r22.xw, r14.xxxy, r17.wwww
          mad r26.xy, -r17.wwww, r14.xyxx, r16.xyxx
          mul r26.xy, r26.xyxx, l(0.761643, 0.761643, 0.000000, 0.000000)
          mad r22.xw, r22.xxxw, l(0.273828, 0.000000, 0.000000, 0.273828), l(1.477210, 0.000000, 0.000000, 1.477210)
          mul r22.xw, r14.xxxy, r22.xxxw
          sqrt r22.xw, r22.xxxw
          mad r22.xw, |r15.wwww|, r14.xxxy, r22.xxxw
          rcp r22.xw, r22.xxxw
          mul r22.xw, r22.xxxw, r26.xxxy
          mad r22.xw, |r15.wwww|, l(0.500000, 0.000000, 0.000000, 0.500000), r22.xxxw
          mul r22.xw, r14.zzzw, r22.xxxw
          lt r15.w, r15.w, l(0.000000)
          mul r26.xy, r14.xyxx, r16.wwww
          mad r26.zw, cb2[2].xxxz, cb2[0].xxxx, -r26.xxxy
          mul r26.zw, r26.zzzw, l(0.000000, 0.000000, 1.442695, 1.442695)
          exp r26.zw, r26.zzzw
          rsq r27.xy, r26.xyxx
          dp2 r16.w, r26.xxxx, r27.xxxx
          add r16.w, r16.w, r27.x
          mul r28.x, r16.w, r26.z
          dp2 r16.w, r26.yyyy, r27.yyyy
          add r16.w, r16.w, r27.y
          mul r28.y, r16.w, r26.w
          mad r26.xy, r28.xyxx, l(1.253314, 1.253314, 0.000000, 0.000000), -r22.xwxx
          movc r22.xw, r15.wwww, r26.xxxy, r22.xxxw
          mul r22.xw, r22.xxxw, cb2[2].yyyw
          mul r15.w, r22.w, cb2[10].x
          mad r26.xyz, r22.xxxx, cb2[3].xyzx, r15.wwww
          mul r26.xyz, r26.xyzx, l(-1.442695, -1.442695, -1.442695, 0.000000)
          exp r26.xyz, r26.xyzx
          add r26.xyz, -r26.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
          add r15.w, r26.y, r26.x
          add r15.w, r26.z, r15.w
          mul r16.w, r15.w, l(0.333333343)
          mad r26.xyz, -r15.wwww, l(0.333333343, 0.333333343, 0.333333343, 0.000000), r26.xyzx
          mad r26.xyz, r26.xyzx, cb2[10].wwww, r16.wwww
          mad r26.xyz, -r26.xyzx, cb2[11].xxxx, l(1.000000, 1.000000, 1.000000, 0.000000)
          mul r23.xyz, r23.xyzx, r26.xyzx
          mov r15.w, l(1.000000)
        else
          mov r23.xyz, l(0,0,0,0)
          mov r15.w, l(0)
        endif
      else
        mov r15.w, l(1.000000)
      endif
      if_nz r19.w
        ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r26.xyz, r8.w, l(0), t4.xyzx
        ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r27.xyzw, r8.w, l(40), t4.xyzw
        ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r28.xyz, r8.w, l(72), t4.xyzx
        add r26.xyz, r3.xyzx, -r26.xyzx
        dp3 r20.x, r26.xyzx, r20.xyzx
        dp3 r20.y, r26.xyzx, r28.xyzx
        mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
        ieq r16.w, r19.w, l(2)
        frc r22.xw, r20.xxxy
        movc r20.xy, r16.wwww, r22.xwxx, r20.xyxx
        add r22.xw, r27.xxxy, cb0[287].yyyy
        rcp r22.xw, r22.xxxw
        mul r26.xy, r27.xyxx, r22.xwxx
        mad r22.xw, -r22.xxxw, r27.xxxy, l(1.000000, 0.000000, 0.000000, 1.000000)
        mul r22.xw, r22.xxxw, l(0.500000, 0.000000, 0.000000, 0.500000)
        mul r26.zw, r27.xxxy, cb0[287].xxxx
        add r26.zw, r26.zzzw, r26.zzzw
        div r26.zw, r1.yyyy, r26.zzzw
        mad r20.xy, r20.xyxx, r26.xyxx, r22.xwxx
        add r22.xw, -r26.zzzw, l(1.000000, 0.000000, 0.000000, 1.000000)
        max r20.xy, r26.zwzz, r20.xyxx
        min r20.xy, r22.xwxx, r20.xyxx
        mad r20.xy, r20.xyxx, r27.xyxx, r27.zwzz
        sample_l_indexable(texture2d)(float,float,float,float) r20.xyz, r20.xyxx, t6.xyzw, s1, l(0.000000)
        mul r23.xyz, r20.xyzx, r23.xyzx
      endif
      mul r20.xyz, r15.wwww, r23.xyzx
      ige r15.w, r20.w, l(0)
      lt r16.w, l(0.000000), r24.w
      and r15.w, r15.w, r16.w
      mad r23.xyz, r24.wwww, r9.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      movc r23.xyz, r15.wwww, r23.xyzx, l(1.000000,1.000000,1.000000,0)
      and r15.w, r10.w, r23.w
      movc r15.w, r15.w, l(1.000000), l(0)
      mad r16.w, r25.w, r1.x, r12.w
      mul r15.w, r15.w, r16.w
      mad r15.w, -r15.w, cb0[282].z, l(1.000000)
      min r23.xyz, r15.wwww, r23.xyzx
      ge r15.w, r16.z, l(0.000000)
      add r16.w, r0.x, r16.z
      add_sat r16.w, r16.w, l(-1.000000)
      add r16.w, r16.w, l(-1.000000)
      mad r16.w, cb0[285].x, r16.w, l(1.000000)
      movc r15.w, r15.w, r16.w, l(1.000000)
      mul r26.xyz, r15.wwww, r23.xyzx
      add r27.xyz, -r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      mul r28.xyz, r26.xyzx, r26.xyzx
      mul r28.xyz, r26.xyzx, r28.xyzx
      mad r23.xyz, -r23.xyzx, r15.wwww, l(1.000000, 1.000000, 1.000000, 0.000000)
      mad r23.xyz, -r23.xyzx, r27.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      mul r24.xyz, r24.xyzx, r26.xyzx
      mad r24.xyz, r28.xyzx, r27.xyzx, r24.xyzx
      add r24.xyz, -r23.xyzx, r24.xyzx
      mad r23.xyz, r25.zzzz, r24.xyzx, r23.xyzx
      mul r20.xyz, r20.xyzx, r23.xyzx
      max r15.w, r20.y, r20.x
      max r15.w, r20.z, r15.w
      lt r15.w, l(0.000000), r15.w
      if_nz r15.w
        ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r15.w, r8.w, l(128), t4.xxxx
        max r15.w, r6.z, r15.w
        mov_sat r16.w, r16.z
        dp3 r17.w, -r19.xyzx, r4.xyzx
        mad r18.w, r17.w, l(2.000000), l(2.000000)
        max r18.w, r18.w, l(5.960464478E-08)
        rsq r18.w, r18.w
        add r19.x, r6.w, r16.z
        mul_sat r19.x, r18.w, r19.x
        mad_sat r18.w, r18.w, r17.w, r18.w
        add r18.w, -r18.w, l(1.000000)
        mul r19.y, r18.w, r18.w
        mul r19.y, r19.y, r19.y
        mul r19.z, r18.w, r19.y
        mad r18.w, -r19.y, r18.w, l(1.000000)
        mad r19.yzw, r12.xxyz, r18.wwww, r19.zzzz
        mul r15.w, r15.w, r15.w
        mad r18.w, r19.x, r15.w, -r19.x
        mad r18.w, r18.w, r19.x, l(1.000000)
        mad r19.x, -|r16.z|, r15.w, |r16.z|
        mad r19.x, r19.x, |r16.z|, r15.w
        sqrt r19.x, r19.x
        mul r19.x, r7.w, r19.x
        mul r18.w, r18.w, r18.w
        mad r19.x, |r16.z|, r9.w, r19.x
        mul r15.w, r15.w, l(0.159154937)
        mul r18.w, r18.w, r19.x
        max r18.w, r18.w, l(1.175494351E-38)
        div r15.w, r15.w, r18.w
        mul r19.xyz, r15.wwww, r19.yzwy
        mad r15.w, r6.y, r17.w, r6.y
        add r16.z, -|r16.z|, l(1.000000)
        mul r17.w, r16.z, r16.z
        mul r17.w, r17.w, r17.w
        mul r16.z, r16.z, r17.w
        add r15.w, r15.w, l(-0.500000)
        mad r16.z, r15.w, r16.z, l(1.000000)
        mad r15.w, r15.w, r11.w, l(1.000000)
        mul r15.w, r15.w, r16.z
        mul r15.w, r15.w, r16.w
        mul r15.w, r15.w, l(0.307334960)
        mul r19.xyz, r16.wwww, r19.xyzx
        mul r23.xyz, r20.xyzx, r15.wwww
        mul r23.xyz, r25.xxxx, r23.xyzx
        mul r19.xyz, r20.xyzx, r19.xyzx
        mul r19.xyz, r25.yyyy, r19.xyzx
      else
        mov r23.xyz, l(0,0,0,0)
        mov r19.xyz, l(0,0,0,0)
      endif
    else
      mov r23.xyz, l(0,0,0,0)
      mov r19.xyz, l(0,0,0,0)
    endif
    add r17.xyz, r17.xyzx, r23.xyzx
    add r18.xyz, r18.xyzx, r19.xyzx
  endif
  iadd r8.w, r8.w, l(1)
endloop
if_nz cb0[360].x
  add r0.x, r13.z, l(0.500000)
  ld_indexable(texture2darray)(float,float,float,float) r4.xyzw, r2.xyzw, t8.xyzw
  mul r1.xyz, r1.zzzz, r4.xyzx
  and r0.w, r3.w, cb0[284].y
  movc r0.w, r0.w, cb0[284].x, l(1.000000)
  mul r1.xyz, r0.wwww, r1.xyzx
  max r0.w, r12.y, r12.x
  max r0.w, r12.z, r0.w
  add r0.w, r0.w, l(-0.200000)
  mul_sat r0.w, r0.w, l(4.000000)
  mul r0.w, r0.w, cb0[282].w
  mad r3.xyz, r7.xyzx, r11.xyzx, -r5.xyzx
  mad r3.xyz, r0.wwww, r3.xyzx, r5.xyzx
  mul r3.xyz, r0.xxxx, r3.xyzx
  mad r1.xyz, r1.xyzx, r3.xyzx, -r8.xyzx
  mad r8.xyz, r4.wwww, r1.xyzx, r8.xyzx
endif
and r0.x, r3.w, cb0[284].w
movc r0.x, r0.x, cb0[284].z, l(1.000000)
mul r1.xyz, r0.xxxx, r15.xyzx
ftoi r0.xy, r0.yzyy
mov r0.zw, r2.zzzw
ld_indexable(texture2darray)(float,float,float,float) r0.x, r0.xyzw, t10.xyzw
add r0.y, -r0.x, l(1.000000)
mad r0.x, cb0[283].w, -r0.x, l(1.000000)
add r0.z, r0.y, r7.w
mad r0.w, r6.z, l(-16.000000), l(-1.000000)
exp r0.w, r0.w
log r0.z, |r0.z|
mul r0.z, r0.z, r0.w
exp r0.z, r0.z
add r0.z, r0.y, r0.z
add_sat r0.z, r0.z, l(-1.000000)
add r0.z, r0.z, l(-1.000000)
mul r0.w, r0.z, cb0[372].z
mad r0.z, cb0[372].z, r0.z, l(1.000000)
mad r0.w, cb0[283].w, r0.w, l(1.000000)
min r0.z, r0.z, r5.w
mad r3.xyz, r12.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000)
mad r4.xyz, r12.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), l(0.641700, 0.641700, 0.641700, 0.000000)
mad r6.yzw, r12.xxyz, l(0.000000, 2.755200, 2.755200, 2.755200), l(0.000000, 0.690300, 0.690300, 0.690300)
mad r7.xyz, r0.zzzz, r3.xyzx, r4.xyzx
mad r7.xyz, r7.xyzx, r0.zzzz, r6.yzwy
mul r7.xyz, r0.zzzz, r7.xyzx
max r7.xyz, r0.zzzz, r7.xyzx
min r0.y, r0.y, l(1.000000)
mad r9.xyz, r5.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000)
mad r10.xyz, r5.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), l(0.641700, 0.641700, 0.641700, 0.000000)
mad r11.xyz, r5.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), l(0.690300, 0.690300, 0.690300, 0.000000)
mad r13.xyz, r0.yyyy, r9.xyzx, r10.xyzx
mad r13.xyz, r13.xyzx, r0.yyyy, r11.xyzx
mul r13.xyz, r0.yyyy, r13.xyzx
max r13.xyz, r0.yyyy, r13.xyzx
mad r3.xyz, r0.wwww, r3.xyzx, r4.xyzx
mad r3.xyz, r3.xyzx, r0.wwww, r6.yzwy
mul r3.xyz, r0.wwww, r3.xyzx
max r0.yzw, r0.wwww, r3.xxyz
mad r3.xyz, r0.xxxx, r9.xyzx, r10.xyzx
mad r3.xyz, r3.xyzx, r0.xxxx, r11.xyzx
mul r3.xyz, r0.xxxx, r3.xyzx
max r3.xyz, r0.xxxx, r3.xyzx
mul r4.xyz, r8.xyzx, r13.xyzx
mul r1.xyz, r1.xyzx, r7.xyzx
mul r3.xyz, r3.xyzx, r17.xyzx
mad r3.xyz, r5.xyzx, r3.xyzx, r4.xyzx
mad r0.xyz, r18.xyzx, r0.yzwy, r1.xyzx
mad r1.xyz, r12.xyzx, r6.xxxx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r0.xyz, r0.xyzx, r1.xyzx
mul r0.xyz, r1.wwww, r0.xyzx
mad r0.xyz, r3.xyzx, r1.wwww, r0.xyzx
mov r0.w, l(1.000000)
store_uav_typed u0.xyzw, r2.xyzz, r0.xyzw
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v0.6.164 on Sat Nov  7 00:16:05 2026
// struct t24_t {
//   float val[1];
// };
// StructuredBuffer<t24_t> t24 : register(t24);
//
// Texture2DArray<uint4> t23 : register(t23);
//
// Texture2D<float4> t22 : register(t22);
//
// Texture2DArray<float4> t21 : register(t21);
//
// Texture2DArray<float4> t20 : register(t20);
//
// Texture2DArray<float4> t19 : register(t19);
//
// Texture2DArray<float4> t18 : register(t18);
//
// Texture2DArray<float4> t17 : register(t17);
//
// struct t16_t {
//   float val[24];
// };
// StructuredBuffer<t16_t> t16 : register(t16);
//
// struct t15_t {
//   float val[52];
// };
// StructuredBuffer<t15_t> t15 : register(t15);
//
// Texture2D<float4> t14 : register(t14);
//
// Texture2D<float4> t13 : register(t13);
//
// Texture2D<float4> t12 : register(t12);
//
// Texture2DArray<float4> t11 : register(t11);
//
// Texture2DArray<float4> t10 : register(t10);
//
// TextureCubeArray<float4> t9 : register(t9);
//
// Texture2DArray<float4> t8 : register(t8);
//
// Texture2DArray<uint4> t7 : register(t7);
//
// Texture2D<float4> t6 : register(t6);
//
// struct t5_t {
//   float val[56];
// };
// StructuredBuffer<t5_t> t5 : register(t5);
//
// struct t4_t {
//   float val[57];
// };
// StructuredBuffer<t4_t> t4 : register(t4);
//
// struct t3_t {
//   float val[1];
// };
// StructuredBuffer<t3_t> t3 : register(t3);
//
// Texture2D<float4> t2 : register(t2);
//
// Texture2D<float4> t1 : register(t1);
//
// Texture2DArray<float4> t0 : register(t0);
//
// SamplerComparisonState s2_s : register(s2);
//
// SamplerState s1_s : register(s1);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb3 : register(b3)
// {
//   float4 cb3[1];
// }
//
// cbuffer cb2 : register(b2)
// {
//   float4 cb2[12];
// }
//
// cbuffer cb1 : register(b1)
// {
//   float4 cb1[100];
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[373];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main)
// {
//   const float4 icb[] = { { 1.000000, 0, 0, 0},
//                               { 0, 1.000000, 0, 0},
//                               { 0, 0, 1.000000, 0},
//                               { 0, 0, 0, 1.000000} };
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_texture2darray (float,float,float,float) u0
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35,r36,r37,r38,r39,r40,r41,r42,r43,r44,r45;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_thread_group 8, 8, 1
//   r0.x = (uint)vThreadGroupID.x >> 2;
//   r0.x = (int)r0.x + asint(cb3[0].x);
//   r0.x = t24[r0.x].val[0/4];
//   r1.x = (int)r0.x & 0x00007fff;
//   if (15 == 0) r1.y = 0; else if (15+15 < 32) {   r1.y = (uint)r0.x << (32-(15 + 15)); r1.y = (uint)r1.y >> (32-15);  } else r1.y = (uint)r0.x >> 15;
//   r2.x = (int)vThreadGroupID.x & 1;
//   if (1 == 0) r2.y = 0; else if (1+1 < 32) {   r2.y = (uint)vThreadGroupID.x << (32-(1 + 1)); r2.y = (uint)r2.y >> (32-1);  } else r2.y = (uint)vThreadGroupID.x >> 1;
//   r0.yz = (uint2)r2.xy << int2(3,3);
//   r0.yz = mad((int2)r1.xy, int2(16,16), (int2)r0.yz);
//   r2.xy = (int2)r0.yz + (int2)vThreadIDInGroup.xy;
//   r2.z = (uint)r0.x >> 30;
//   r2.w = 0;
//   r0.x = t0.Load(r2.xyzw).x;
//   r0.y = cmp(r0.x == 0.000000);
//   if (r0.y != 0) {
//     return;
//   }
//   r0.y = t23.Load(r2.xyzw).y;
//   r0.y = (int)r0.y & 2;
//   if (r0.y == 0) {
//     return;
//   }
//   r0.yz = (uint2)r2.xy;
//   r0.w = (uint)r2.z << 2;
//   r1.zw = float2(0.5,0.5) + r0.yz;
//   r1.zw = cb0[42].zw * r1.zw;
//   r1.zw = r1.zw * float2(2,2) + float2(-1,-1);
//   r3.xyzw = cb1[r0.w+41].xyzw * -r1.wwww;
//   r3.xyzw = cb1[r0.w+40].xyzw * r1.zzzz + r3.xyzw;
//   r3.xyzw = cb1[r0.w+42].xyzw * r0.xxxx + r3.xyzw;
//   r3.xyzw = cb1[r0.w+43].xyzw + r3.xyzw;
//   r3.xyz = r3.xyz / r3.www;
//   r0.x = cmp(cb0[47].w == 0.000000);
//   if (r0.x != 0) {
//     r4.xyz = -r3.xyz;
//   } else {
//     r4.x = cb1[r0.w+0].z;
//     r4.y = cb1[r0.w+1].z;
//     r4.z = cb1[r0.w+2].z;
//   }
//   r1.z = dot(r4.xyz, r4.xyz);
//   r1.z = rsqrt(r1.z);
//   r4.xyz = r4.xyz * r1.zzz;
//   r5.xyzw = t17.Load(r2.xyzw).xyzw;
//   r6.xyzw = t18.Load(r2.xyzw).xwyz;
//   r7.xyz = t19.Load(r2.xyzw).xyz;
//   r8.xyz = t20.Load(r2.xyzw).xyz;
//   r1.z = t1.Load(float4(0,0,0,0)).x;
//   r1.w = cb0[282].y * r1.z;
//   r3.w = cmp(r1.w == 0.000000);
//   r3.w = r3.w ? 1.000000 : 0;
//   r1.z = r1.z * cb0[282].y + r3.w;
//   r1.z = rcp(r1.z);
//   r8.xyz = r8.xyz * r1.zzz;
//   if (cb0[280].w != 0) {
//     r3.w = t21.Load(r2.xyzw).w;
//     r3.w = 255.5 * r3.w;
//     r3.w = (uint)r3.w;
//   } else {
//     r3.w = 255;
//   }
//   r9.xyz = float3(255.5,255.5,255.5) * r6.xzw;
//   r9.xyz = (uint3)r9.xyz;
//   r4.w = (uint)r9.z >> 4;
//   bitmask.x = ((~(-1 << 4)) << 8) & 0xffffffff;  r10.x = (((uint)r9.z << 8) & bitmask.x) | ((uint)0 & ~bitmask.x);
//   r10.y = (uint)r4.w << 8;
//   r6.zw = (int2)r9.xy | (int2)r10.xy;
//   r6.zw = (uint2)r6.zw;
//   r6.zw = r6.zw * float2(0.000488400517,0.000488400517) + float2(-1,-1);
//   r4.w = 1 + -abs(r6.z);
//   r9.z = r4.w + -abs(r6.w);
//   r4.w = max(0, -r9.z);
//   r10.xy = cmp(r6.zw >= float2(0,0));
//   r10.xy = r10.xy ? -r4.ww : r4.ww;
//   r9.xy = r10.xy + r6.zw;
//   r4.w = dot(r9.xyz, r9.xyz);
//   r4.w = rsqrt(r4.w);
//   r10.xyz = r9.xyz * r4.www;
//   r11.xyz = r7.xyz * float3(0.305306017,0.305306017,0.305306017) + float3(0.682171106,0.682171106,0.682171106);
//   r11.xyz = r7.xyz * r11.xyz + float3(0.0125228781,0.0125228781,0.0125228781);
//   r12.xyz = r11.xyz * r7.xyz;
//   r6.z = r6.y * r6.y;
//   r6.w = dot(r10.xyz, r4.xyz);
//   r7.w = max(9.99999975e-05, r6.w);
//   r6.x = sqrt(r7.w);
//   r13.xy = r6.xy * float2(0.984375,0.984375) + float2(0.0078125,0.0078125);
//   r13.xyz = t22.SampleLevel(s0_s, r13.xy, 0).xyz;
//   r6.x = r13.y + -r13.x;
//   r14.xyz = r12.xyz * r6.xxx + r13.xxx;
//   r6.x = 1 / r13.y;
//   r6.x = -1 + r6.x;
//   r8.w = r6.z * r6.z;
//   r9.w = -r7.w * r8.w + r7.w;
//   r9.w = r9.w * r7.w + r8.w;
//   r9.w = sqrt(r9.w);
//   r3.xyz = cb1[r2.z+98].xyz + r3.xyz;
//   r10.w = t7.Load(r2.xyzw).x;
//   r11.w = (uint)r10.w >> 24;
//   r11.w = (uint)r11.w;
//   r12.w = 0.00392156886 * r11.w;
//   r10.w = (int)r10.w & 0x00ffffff;
//   r13.x = cmp(asint(cb0[280].z) >= 0);
//   if (r13.x != 0) {
//     r13.x = t4[cb0[280].z].val[16/4];
//     r15.x = t4[cb0[280].z].val[24/4];
//     r15.y = t4[cb0[280].z].val[24/4+1];
//     r15.z = t4[cb0[280].z].val[24/4+2];
//     r13.y = t4[cb0[280].z].val[116/4];
//     r13.xy = cmp(float2(0,0) < r13.xy);
//     r13.x = r13.y ? r13.x : 0;
//     r13.y = dot(r10.xyz, -r15.xyz);
//     r13.w = cmp(0 < r13.y);
//     r13.x = r13.w ? r13.x : 0;
//     if (r13.x != 0) {
//       r15.x = t16[0].val[0/4];
//       r15.y = t16[0].val[0/4+1];
//       r15.z = t16[0].val[0/4+2];
//       r15.w = t16[0].val[0/4+3];
//       r16.x = t16[0].val[16/4];
//       r16.y = t16[0].val[16/4+1];
//       r16.z = t16[0].val[16/4+2];
//       r16.w = t16[0].val[16/4+3];
//       r17.x = t16[0].val[32/4];
//       r17.y = t16[0].val[32/4+1];
//       r17.z = t16[0].val[32/4+2];
//       r17.w = t16[0].val[32/4+3];
//       r18.x = t16[0].val[48/4];
//       r18.y = t16[0].val[48/4+1];
//       r18.z = t16[0].val[48/4+2];
//       r18.w = t16[0].val[48/4+3];
//       r19.xyz = float3(0,0,0);
//       r13.xw = float2(0,0);
//       while (true) {
//         r14.w = cmp((uint)r13.x >= asuint(cb0[280].y));
//         if (r14.w != 0) break;
//         r20.xyzw = icb[r13.x+0].xxxx * r15.xyzw;
//         r20.xyzw = icb[r13.x+0].yyyy * r16.xyzw + r20.xyzw;
//         r20.xyzw = icb[r13.x+0].zzzz * r17.xyzw + r20.xyzw;
//         r20.xyzw = icb[r13.x+0].wwww * r18.xyzw + r20.xyzw;
//         r20.xyz = -r20.xyz + r3.xyz;
//         r14.w = dot(r20.xyz, r20.xyz);
//         r19.w = r14.w / r20.w;
//         r20.w = cmp(0 < r19.w);
//         r21.x = cmp(1 >= r19.w);
//         r20.w = r20.w ? r21.x : 0;
//         if (r20.w != 0) {
//           r14.w = sqrt(r14.w);
//           r19.xyz = r20.xyz / r14.www;
//           r13.w = r19.w;
//           break;
//         }
//         r13.x = (int)r13.x + 1;
//         r19.xyz = r20.xyz;
//         r13.w = r19.w;
//       }
//       r14.w = cmp((uint)r13.x < asuint(cb0[280].y));
//       r13.x = r14.w ? r13.x : -1;
//       if (r0.x != 0) {
//         r15.xyz = -r3.xyz;
//       } else {
//         r15.x = cb1[r0.w+0].z;
//         r15.y = cb1[r0.w+1].z;
//         r15.z = cb1[r0.w+2].z;
//       }
//       r0.x = (int)r13.x;
//       r0.w = cmp(r0.x >= 0);
//       if (r0.w != 0) {
//         r16.x = t16[0].val[76/4];
//         r16.y = t16[0].val[76/4+1];
//         r16.z = t16[0].val[76/4+2];
//         r16.w = t16[0].val[76/4+3];
//         r17.w = t16[0].val[92/4];
//         r0.w = t4[cb0[280].z].val[68/4];
//         r13.y = cmp(r13.y >= 0);
//         r13.y = r13.y ? 1 : -1;
//         r18.xyz = r13.yyy * r10.xyz;
//         r13.y = (int)r16.x;
//         r17.xyz = r16.yzw;
//         r14.w = dot(r17.xyzw, icb[r13.x+0].xyzw);
//         r15.w = cmp(0 >= r14.w);
//         r16.x = 1 + -r14.w;
//         r13.w = -r16.x + r13.w;
//         r13.w = saturate(r13.w / r14.w);
//         r13.w = r15.w ? 0 : r13.w;
//         r15.x = dot(r15.xyz, r19.xyz);
//         r14.w = -1 + r14.w;
//         r14.w = saturate(-3.33333325 * r14.w);
//         r15.y = r14.w * -2 + 3;
//         r14.w = r14.w * r14.w;
//         r14.w = r15.y * r14.w;
//         r14.w = r14.w * 512 + 8;
//         r14.w = saturate(r15.x * r14.w);
//         r13.w = r14.w * -r13.w + r13.w;
//         r15.x = t15[r0.w].val[0/4];
//         r15.y = t15[r0.w].val[0/4+1];
//         r15.z = t15[r0.w].val[0/4+2];
//         r15.w = t15[r0.w].val[0/4+3];
//         r16.x = t15[r0.w].val[16/4];
//         r16.y = t15[r0.w].val[16/4+1];
//         r16.z = t15[r0.w].val[16/4+2];
//         r16.w = t15[r0.w].val[16/4+3];
//         r17.x = t15[r0.w].val[32/4];
//         r14.w = t15[r0.w].val[76/4];
//         r19.x = t15[r0.w].val[96/4];
//         r19.y = t15[r0.w].val[96/4+1];
//         r20.x = t15[r0.w].val[128/4];
//         r20.y = t15[r0.w].val[128/4+1];
//         r20.z = t15[r0.w].val[128/4+2];
//         r18.w = (int)r13.x + (int)r0.w;
//         r21.x = t15[r18.w].val[64/4];
//         r21.y = t15[r18.w].val[64/4+1];
//         r21.z = t15[r18.w].val[64/4+2];
//         r20.xyz = r20.xyz + r3.xyz;
//         r14.w = r21.z * r14.w;
//         r18.xyz = r18.xyz * r14.www;
//         r14.w = (int)r13.x + 1;
//         r13.y = (int)r13.y + -1;
//         r14.w = min((int)r14.w, (int)r13.y);
//         r14.w = (int)r14.w;
//         r0.x = cmp(r0.x != r14.w);
//         r19.z = cmp(0 < r13.w);
//         r0.x = r0.x ? r19.z : 0;
//         r19.z = trunc(cb0[61].z);
//         r19.zw = r19.zz * float2(2.08299994,4.8670001) + r0.yz;
//         r19.z = dot(r19.zw, float2(0.0671105608,0.00583714992));
//         r19.z = frac(r19.z);
//         r19.z = 52.9829178 * r19.z;
//         r19.z = frac(r19.z);
//         r19.z = cmp(r13.w >= r19.z);
//         r0.x = r0.x ? r19.z : 0;
//         if (r0.x != 0) {
//           r0.x = (int)r0.w;
//           r0.x = r0.x + r14.w;
//           r0.x = (int)r0.x;
//           r22.x = t15[r0.x].val[48/4+2];
//           r22.y = t15[r0.x].val[48/4+3];
//           r22.z = t15[r0.x].val[48/4];
//           r22.w = t15[r0.x].val[48/4+1];
//           r23.x = t15[r0.x].val[36/4+1];
//           r23.y = t15[r0.x].val[36/4];
//           r23.z = t15[r0.x].val[36/4+2];
//           r24.x = t15[r0.x].val[64/4];
//           r24.y = t15[r0.x].val[64/4+1];
//           r24.z = t15[r0.x].val[64/4+2];
//           r0.x = r24.z / r21.z;
//           r18.xyz = r18.xyz * r0.xxx;
//           r21.xy = r24.xy;
//           r24.x = r23.y;
//           r17.y = r23.z;
//         } else {
//           r22.x = t15[r18.w].val[48/4+2];
//           r22.y = t15[r18.w].val[48/4+3];
//           r22.z = t15[r18.w].val[48/4];
//           r22.w = t15[r18.w].val[48/4+1];
//           r23.x = t15[r18.w].val[36/4+1];
//           r23.y = t15[r18.w].val[36/4];
//           r23.z = t15[r18.w].val[36/4+2];
//           r24.x = r23.y;
//           r17.y = r23.z;
//         }
//         r18.xyz = r20.xyz + r18.xyz;
//         r24.yzw = r15.xyz;
//         r18.w = 1;
//         r0.x = dot(r24.yzwx, r18.xyzw);
//         r23.y = r15.w;
//         r23.zw = r16.xy;
//         r0.w = dot(r23.yzwx, r18.xyzw);
//         r17.zw = r16.zw;
//         r15.x = dot(r17.zwxy, r18.xyzw);
//         r16.xy = r22.zw * r0.xw;
//         r15.y = 1;
//         r0.x = dot(r22.xy, r15.xy);
//         r15.xy = saturate(r16.xy * float2(0.5,0.5) + float2(0.5,0.5));
//         r15.xy = r15.xy * r19.xy;
//         r15.xy = r15.xy * cb0[83].zw + r21.xy;
//         r0.x = 1.52587891e-05 + r0.x;
//         r15.zw = r15.xy * cb0[83].xy + float2(0.5,0.5);
//         r15.zw = floor(r15.zw);
//         r15.xy = r15.xy * cb0[83].xy + -r15.zw;
//         r16.xyzw = float4(0.5,1,0.5,1) + r15.xxyy;
//         r17.xyzw = r16.xxzz * r16.xxzz;
//         r18.yw = float2(0.0408160016,0.0408160016) * r17.yw;
//         r16.xz = r17.xz * float2(0.5,0.5) + -r15.xy;
//         r17.xy = float2(1,1) + -r15.xy;
//         r17.zw = min(float2(0,0), r15.xy);
//         r17.xy = -r17.zw * r17.zw + r17.xy;
//         r17.zw = max(float2(0,0), r15.xy);
//         r16.yw = -r17.zw * r17.zw + r16.yw;
//         r17.xy = float2(2,2) + r17.xy;
//         r16.yw = float2(2,2) + r16.yw;
//         r19.z = 0.0816320032 * r16.y;
//         r20.xyz = float3(0.0816320032,0.0816320032,0.0816320032) * r16.zxw;
//         r16.xy = float2(0.0816320032,0.0816320032) * r17.xy;
//         r19.x = r20.y;
//         r19.yw = r15.xx * float2(-0.0816320032,0.0816320032) + float2(0.163264006,0.0816320032);
//         r17.xz = r15.xx * float2(-0.0816320032,0.0816320032) + float2(0.0816320032,0.163264006);
//         r17.y = r16.x;
//         r17.w = r18.y;
//         r19.xyzw = r19.xyzw + r17.xyzw;
//         r20.yw = r15.yy * float2(-0.0816320032,0.0816320032) + float2(0.163264006,0.0816320032);
//         r18.xz = r15.yy * float2(-0.0816320032,0.0816320032) + float2(0.0816320032,0.163264006);
//         r18.y = r16.y;
//         r16.xyzw = r20.xyzw + r18.xyzw;
//         r17.xyzw = r17.xyzw / r19.xyzw;
//         r17.xyzw = float4(-3.5,-1.5,0.5,2.5) + r17.xyzw;
//         r18.xyzw = r18.xyzw / r16.xyzw;
//         r18.xyzw = float4(-3.5,-1.5,0.5,2.5) + r18.xyzw;
//         r17.xyzw = cb0[83].zzzz * r17.wxyz;
//         r18.xyzw = cb0[83].wwww * r18.xwyz;
//         r20.xzw = r17.yzw;
//         r20.y = r18.x;
//         r21.xyzw = r15.zwzw * cb0[83].zwzw + r20.xyzy;
//         r15.xy = r15.zw * cb0[83].zw + r20.wy;
//         r17.y = r20.y;
//         r20.y = r18.z;
//         r22.xyzw = r15.zwzw * cb0[83].zwzw + r20.xyzy;
//         r23.xy = r15.zw * cb0[83].zw + r20.wy;
//         r17.z = r20.y;
//         r24.xyzw = r15.zwzw * cb0[83].zwzw + r17.xyxz;
//         r20.y = r18.w;
//         r25.xyzw = r15.zwzw * cb0[83].zwzw + r20.xyzy;
//         r17.yz = r15.zw * cb0[83].zw + r20.wy;
//         r17.w = r20.y;
//         r23.zw = r15.zw * cb0[83].zw + r17.xw;
//         r18.xzw = r20.xzw;
//         r20.xyzw = r15.zwzw * cb0[83].zwzw + r18.xyzy;
//         r18.zw = r15.zw * cb0[83].zw + r18.wy;
//         r18.x = r17.x;
//         r15.zw = r15.zw * cb0[83].zw + r18.xy;
//         r26.xyzw = r19.xyzw * r16.xxxx;
//         r27.xyzw = r19.xyzw * r16.yyyy;
//         r28.xyzw = r19.xyzw * r16.zzzz;
//         r16.xyzw = r19.xyzw * r16.wwww;
//         r0.w = t14.SampleCmpLevelZero(s2_s, r21.xy, r0.x).x;
//         r14.w = t14.SampleCmpLevelZero(s2_s, r21.zw, r0.x).x;
//         r15.x = t14.SampleCmpLevelZero(s2_s, r15.xy, r0.x).x;
//         r15.y = t14.SampleCmpLevelZero(s2_s, r24.xy, r0.x).x;
//         r17.xw = float2(0,0);
//         while (true) {
//           r18.x = cmp((int)r17.w >= 1);
//           if (r18.x != 0) break;
//           r18.x = r26.x * r0.w + r17.x;
//           r18.x = r26.y * r14.w + r18.x;
//           r18.x = r26.z * r15.x + r18.x;
//           r17.x = r26.w * r15.y + r18.x;
//           r17.w = (int)r17.w + 1;
//         }
//         r0.w = t14.SampleCmpLevelZero(s2_s, r22.xy, r0.x).x;
//         r14.w = t14.SampleCmpLevelZero(s2_s, r22.zw, r0.x).x;
//         r15.x = t14.SampleCmpLevelZero(s2_s, r23.xy, r0.x).x;
//         r15.y = t14.SampleCmpLevelZero(s2_s, r24.zw, r0.x).x;
//         r17.w = r17.x;
//         r18.x = 0;
//         while (true) {
//           r18.y = cmp((int)r18.x >= 1);
//           if (r18.y != 0) break;
//           r18.y = r27.x * r0.w + r17.w;
//           r18.y = r27.y * r14.w + r18.y;
//           r18.y = r27.z * r15.x + r18.y;
//           r17.w = r27.w * r15.y + r18.y;
//           r18.x = (int)r18.x + 1;
//         }
//         r0.w = t14.SampleCmpLevelZero(s2_s, r25.xy, r0.x).x;
//         r14.w = t14.SampleCmpLevelZero(s2_s, r25.zw, r0.x).x;
//         r15.x = t14.SampleCmpLevelZero(s2_s, r17.yz, r0.x).x;
//         r15.y = t14.SampleCmpLevelZero(s2_s, r23.zw, r0.x).x;
//         r17.x = r17.w;
//         r17.y = 0;
//         while (true) {
//           r17.z = cmp((int)r17.y >= 1);
//           if (r17.z != 0) break;
//           r17.z = r28.x * r0.w + r17.x;
//           r17.z = r28.y * r14.w + r17.z;
//           r17.z = r28.z * r15.x + r17.z;
//           r17.x = r28.w * r15.y + r17.z;
//           r17.y = (int)r17.y + 1;
//         }
//         r0.w = t14.SampleCmpLevelZero(s2_s, r20.xy, r0.x).x;
//         r14.w = t14.SampleCmpLevelZero(s2_s, r20.zw, r0.x).x;
//         r15.x = t14.SampleCmpLevelZero(s2_s, r18.zw, r0.x).x;
//         r0.x = t14.SampleCmpLevelZero(s2_s, r15.zw, r0.x).x;
//         r15.y = r17.x;
//         r15.z = 0;
//         while (true) {
//           r15.w = cmp((int)r15.z >= 1);
//           if (r15.w != 0) break;
//           r15.w = r16.x * r0.w + r15.y;
//           r15.w = r16.y * r14.w + r15.w;
//           r15.w = r16.z * r15.x + r15.w;
//           r15.y = r16.w * r0.x + r15.w;
//           r15.z = (int)r15.z + 1;
//         }
//         r0.x = cmp((int)r13.x < (int)r13.y);
//         r0.w = 1 + -r15.y;
//         r0.w = r13.w * r0.w + r15.y;
//         r0.x = r0.x ? r15.y : r0.w;
//       } else {
//         r0.x = 1;
//       }
//       r13.xyw = r0.xxx;
//     } else {
//       r13.xyw = float3(1,1,1);
//     }
//   } else {
//     r13.xyw = float3(1,1,1);
//   }
//   r0.x = mad((int)r1.y, asint(cb0[289].x), (int)r1.x);
//   r0.w = (int)r2.z * asint(cb0[289].x);
//   r0.w = (int)r0.w * asint(cb0[289].y);
//   r0.x = mad((int)r0.w, 6, (int)r0.x);
//   r0.x = (uint)r0.x << 4;
//   r0.w = t3[r0.x].val[0/4];
//   r0.w = (int)r0.w & 0x0000ffff;
//   r1.x = -r11.w * 0.00392156886 + 1;
//   r1.y = max(0, -cb0[287].z);
//   r1.y = ceil(r1.y);
//   r1.y = exp2(r1.y);
//   r11.w = 1 + -r7.w;
//   r14.w = r11.w * r11.w;
//   r14.w = r14.w * r14.w;
//   r11.w = r14.w * r11.w;
//   r15.xz = float2(1,1);
//   r16.w = 1;
//   r17.w = 1;
//   r18.w = 1;
//   r19.w = 1;
//   r20.w = 1;
//   r21.xyzw = float4(0,0,0,0);
//   r22.yz = float2(0,0);
//   r14.w = 0;
//   while (true) {
//     r15.w = cmp((uint)r14.w >= (uint)r0.w);
//     if (r15.w != 0) break;
//     r14.w = (int)r14.w + 1;
//     r15.w = (uint)r14.w >> 1;
//     r15.w = (int)r0.x + (int)r15.w;
//     r15.w = t3[r15.w].val[0/4];
//     bitmask.w = ((~(-1 << 1)) << 4) & 0xffffffff;  r22.w = (((uint)r14.w << 4) & bitmask.w) | ((uint)0 & ~bitmask.w);
//     r15.w = (uint)r15.w >> (uint)r22.w;
//     r15.w = (int)r15.w & 0x0000ffff;
//     r23.x = t5[r15.w].val[0/4];
//     r23.y = t5[r15.w].val[0/4+1];
//     r23.z = t5[r15.w].val[0/4+2];
//     r23.w = t5[r15.w].val[0/4+3];
//     r22.w = (int)r3.w & (int)r23.w;
//     if (r22.w != 0) {
//       r22.w = t5[r15.w].val[16/4];
//       r24.x = t5[r15.w].val[24/4];
//       r24.y = t5[r15.w].val[24/4+1];
//       r24.z = t5[r15.w].val[24/4+2];
//       r24.w = t5[r15.w].val[24/4+3];
//       r25.x = t5[r15.w].val[40/4];
//       r25.y = t5[r15.w].val[40/4+1];
//       r25.z = t5[r15.w].val[40/4+2];
//       r25.w = t5[r15.w].val[40/4+3];
//       r23.xyz = -r23.xyz + r3.xyz;
//       r23.w = cmp((int)r25.z == 4);
//       r26.xy = r24.zw;
//       r26.z = r25.x;
//       r27.y = dot(-r23.xyz, -r23.xyz);
//       r24.z = rsqrt(r27.y);
//       r28.xyz = r24.zzz * -r23.xyz;
//       r28.xyz = r23.www ? -r26.xyz : r28.xyz;
//       r22.w = cmp(0 < r22.w);
//       r24.w = dot(r10.xyz, r28.xyz);
//       r25.x = cmp(0 < r24.w);
//       r22.w = r22.w ? r25.x : 0;
//       if (r22.w != 0) {
//         r29.x = t5[r15.w].val[56/4];
//         r29.y = t5[r15.w].val[56/4+1];
//         r29.z = t5[r15.w].val[56/4+2];
//         r29.w = t5[r15.w].val[56/4+3];
//         r30.x = t5[r15.w].val[72/4+2];
//         r30.y = t5[r15.w].val[72/4+3];
//         r30.z = t5[r15.w].val[72/4];
//         r30.w = t5[r15.w].val[72/4+1];
//         r31.x = t5[r15.w].val[88/4+1];
//         r31.y = t5[r15.w].val[88/4+2];
//         r31.z = t5[r15.w].val[88/4+3];
//         r31.w = t5[r15.w].val[88/4];
//         r32.x = t5[r15.w].val[104/4+1];
//         r32.y = t5[r15.w].val[104/4+2];
//         r32.z = t5[r15.w].val[104/4];
//         r32.w = t5[r15.w].val[104/4+3];
//         r33.x = t5[r15.w].val[120/4];
//         r33.y = t5[r15.w].val[120/4+1];
//         r33.z = t5[r15.w].val[120/4+2];
//         r33.w = t5[r15.w].val[120/4+3];
//         r34.x = t5[r15.w].val[136/4];
//         r34.y = t5[r15.w].val[136/4+1];
//         r22.w = t5[r15.w].val[176/4];
//         r35.x = t5[r15.w].val[192/4];
//         r35.y = t5[r15.w].val[192/4+1];
//         r35.z = t5[r15.w].val[192/4+2];
//         r36.x = t5[r15.w].val[216/4];
//         r36.y = t5[r15.w].val[216/4+1];
//         r26.z = dot(r23.xyz, r26.xyz);
//         r15.y = r26.z * r26.z;
//         r27.x = r27.y * r24.z;
//         r22.w = r27.y + r22.w;
//         r27.z = rsqrt(r22.w);
//         r27.yzw = r23.www ? r15.xyz : r27.xyz;
//         r15.y = r27.w * r26.z;
//         r22.w = min(100, r27.w);
//         r24.z = r27.z * r31.x;
//         r24.z = saturate(-r24.z * r24.z + r32.x);
//         r22.w = r24.z * r22.w;
//         r15.y = saturate(r15.y * r24.x + r24.y);
//         r15.y = r22.w * r15.y;
//         r15.y = r15.y * r15.y;
//         r22.w = r23.w ? r26.z : r27.x;
//         r23.w = max(0.00100000005, abs(r28.y));
//         r24.x = rcp(r23.w);
//         r24.y = r22.w * r28.y + r3.y;
//         r24.y = min(r24.y, r3.y);
//         r24.z = -cb0[74].y + r24.y;
//         r24.y = cb0[74].y + -r24.y;
//         r24.y = r24.y * r24.x;
//         r24.yz = max(float2(0,0), r24.yz);
//         r24.y = min(r24.y, r22.w);
//         r22.w = -r24.y + r22.w;
//         r24.z = cb0[75].x * -r24.z;
//         r24.z = 1.44269502 * r24.z;
//         r24.z = exp2(r24.z);
//         r22.w = -r22.w * r23.w;
//         r22.w = cb0[75].x * r22.w;
//         r22.w = 1.44269502 * r22.w;
//         r22.w = exp2(r22.w);
//         r22.w = 1 + -r22.w;
//         r22.w = r24.z * r22.w;
//         r23.w = cb0[75].y * r24.x;
//         r22.w = r22.w * r23.w + r24.y;
//         r22.w = cb0[74].x * r22.w;
//         r22.w = -1.44269502 * r22.w;
//         r22.w = exp2(r22.w);
//         r31.x = r22.w * r15.y;
//         if (r30.z != 0) {
//           r24.x = r25.w;
//           r24.yz = r29.xy;
//           r26.x = dot(r23.xyz, r24.xyz);
//           r30.z = r31.w;
//           r26.y = dot(r23.xyz, r30.xyz);
//           r15.y = cmp((int)r25.z == 1);
//           if (r15.y != 0) {
//             r15.y = dot(abs(r26.xyz), float3(1,1,1));
//             r15.y = rcp(r15.y);
//             r23.xyz = r26.zxy * r15.yyy;
//             r23.x = saturate(-r23.x);
//             r23.yz = cmp(r23.yz >= float2(0,0));
//             r23.xy = r23.yz ? r23.xx : -r23.xx;
//             r23.xy = r26.xy * r15.yy + r23.xy;
//             r23.xy = saturate(r23.xy * float2(0.5,0.5) + float2(0.5,0.5));
//             r23.zw = cb0[287].yy + r32.yw;
//             r23.zw = rcp(r23.zw);
//             r24.xy = r23.zw * r32.yw;
//             r23.zw = -r23.zw * r32.yw + float2(1,1);
//             r23.zw = float2(0.5,0.5) * r23.zw;
//             r25.xw = cb0[287].xx * r32.yw;
//             r25.xw = r25.xw + r25.xw;
//             r25.xw = r1.yy / r25.xw;
//             r23.xy = r23.xy * r24.xy + r23.zw;
//             r23.zw = float2(1,1) + -r25.xw;
//             r23.xy = max(r23.xy, r25.xw);
//             r23.xy = min(r23.xy, r23.zw);
//             r23.xy = r23.xy * r32.yw + r33.xy;
//             r16.xyz = t6.SampleLevel(s1_s, r23.xy, 0).xyz;
//             r23.xyzw = r16.xyzw;
//           } else {
//             r16.xy = cmp((int2)r25.zz != int2(4,3));
//             r15.y = r16.x ? r26.z : 1;
//             r24.xy = r26.xy / r15.yy;
//             r15.y = -r29.w * 0.5 + r26.z;
//             r15.y = -r29.w * 0.5 + abs(r15.y);
//             r15.y = 1 + r15.y;
//             r16.z = max(abs(r24.x), abs(r24.y));
//             r15.y = max(r16.z, r15.y);
//             r15.y = cmp(r36.y >= r15.y);
//             r16.x = r16.x ? r16.y : 0;
//             r16.y = dot(r24.xy, r24.xy);
//             r16.z = r25.y * r25.y;
//             r16.y = cmp(r16.z >= r16.y);
//             r16.y = r15.y ? r16.y : 0;
//             r15.y = r16.x ? r16.y : r15.y;
//             r16.xy = r24.xy * float2(0.5,0.5) + float2(0.5,0.5);
//             r24.xy = cb0[287].yy + r32.yw;
//             r24.xy = rcp(r24.xy);
//             r25.xy = r24.xy * r32.yw;
//             r24.xy = -r24.xy * r32.yw + float2(1,1);
//             r24.xy = float2(0.5,0.5) * r24.xy;
//             r26.xy = cb0[287].xx * r32.yw;
//             r26.xy = r26.xy + r26.xy;
//             r26.xy = r1.yy / r26.xy;
//             r16.xy = r16.xy * r25.xy + r24.xy;
//             r24.xy = float2(1,1) + -r26.xy;
//             r16.xy = max(r16.xy, r26.xy);
//             r16.xy = min(r16.xy, r24.xy);
//             r16.xy = r16.xy * r32.yw + r33.xy;
//             r23.xyz = t6.SampleLevel(s1_s, r16.xy, 0).xyz;
//             r23.w = (int)r15.y & 0x3f800000;
//           }
//           r31.w = r32.z;
//           r31.xyzw = r31.xyzw * r23.wxyz;
//           r32.xyz = r31.yzw;
//         } else {
//           r32.xy = r31.yz;
//         }
//         r16.xyz = r32.xyz * r31.xxx;
//         r15.y = cmp((int)r30.w >= 0);
//         r22.w = cmp(0 < r34.y);
//         r15.y = r15.y ? r22.w : 0;
//         if (r15.y != 0) {
//           r15.y = cmp((int)r25.z == 1);
//           r22.w = cmp((int)r25.z != 4);
//           r23.x = cmp(r24.w >= 0);
//           r23.x = r23.x ? 1 : -1;
//           r23.xyz = r23.xxx * r10.xyz;
//           r25.x = t15[r30.w].val[32/4];
//           r25.y = t15[r30.w].val[32/4+1];
//           r25.z = t15[r30.w].val[32/4+2];
//           r25.w = t15[r30.w].val[32/4+3];
//           r26.x = t15[r30.w].val[48/4];
//           r26.y = t15[r30.w].val[48/4+1];
//           r26.z = t15[r30.w].val[48/4+2];
//           r26.w = t15[r30.w].val[48/4+3];
//           r31.x = t15[r30.w].val[64/4];
//           r31.y = t15[r30.w].val[64/4+1];
//           r31.z = t15[r30.w].val[64/4+2];
//           r31.w = t15[r30.w].val[64/4+3];
//           r24.x = t15[r30.w].val[96/4];
//           r24.y = t15[r30.w].val[96/4+1];
//           r32.x = t15[r30.w].val[128/4];
//           r32.y = t15[r30.w].val[128/4+1];
//           r32.z = t15[r30.w].val[128/4+2];
//           r32.w = t15[r30.w].val[128/4+3];
//           if (r15.y != 0) {
//             r15.y = (int)r30.w;
//             r23.w = cmp(abs(r28.z) >= abs(r28.x));
//             r24.z = cmp(abs(r28.z) >= abs(r28.y));
//             r23.w = r23.w ? r24.z : 0;
//             r27.xzw = cmp(-r28.zyx < float3(0,0,0));
//             r24.z = cmp(abs(r28.y) >= abs(r28.x));
//             r27.xz = r27.xz ? float2(5,3) : float2(4,2);
//             r27.w = r27.w ? 1.000000 : 0;
//             r24.z = r24.z ? r27.z : r27.w;
//             r23.w = r23.w ? r27.x : r24.z;
//             r15.y = r23.w + r15.y;
//             r15.y = (uint)r15.y;
//             r37.x = t15[r15.y].val[0/4];
//             r37.y = t15[r15.y].val[0/4+1];
//             r37.z = t15[r15.y].val[0/4+2];
//             r38.x = t15[r15.y].val[12/4];
//             r38.y = t15[r15.y].val[12/4+1];
//             r38.z = t15[r15.y].val[12/4+2];
//             r39.x = t15[r15.y].val[24/4];
//             r39.y = t15[r15.y].val[24/4+1];
//             r39.z = t15[r15.y].val[24/4+2];
//             r31.x = t15[r15.y].val[64/4];
//             r31.y = t15[r15.y].val[64/4+1];
//           } else {
//             r38.x = t15[r30.w].val[0/4+3];
//             r38.y = t15[r30.w].val[0/4];
//             r38.z = t15[r30.w].val[0/4+1];
//             r38.w = t15[r30.w].val[0/4+2];
//             r39.x = t15[r30.w].val[16/4+2];
//             r39.y = t15[r30.w].val[16/4+3];
//             r39.z = t15[r30.w].val[16/4];
//             r39.w = t15[r30.w].val[16/4+1];
//             r37.xyz = r38.yzw;
//             r38.yz = r39.zw;
//             r39.z = r25.x;
//           }
//           r15.y = cmp(0 < r32.w);
//           if (r15.y != 0) {
//             r15.y = cmp(0 != r32.w);
//             r27.xz = r15.yy ? cb0[85].zw : cb0[82].zw;
//             r29.xyw = r32.xyz + r3.xyz;
//             r23.w = r31.z * r27.y;
//             r23.w = r31.w * r23.w;
//             r17.xyz = r23.xyz * r23.www + r29.xyw;
//             r29.xyw = r17.xyz + -r25.yzw;
//             r30.x = dot(r37.xyz, r29.xyw);
//             r30.y = dot(r38.xyz, r29.xyw);
//             r30.z = dot(r39.xyz, r29.xyw);
//             r37.w = r25.y;
//             r40.x = dot(r37.xyzw, r17.xyzw);
//             r38.w = r25.z;
//             r40.y = dot(r38.xyzw, r17.xyzw);
//             r39.w = r25.w;
//             r40.z = dot(r39.xyzw, r17.xyzw);
//             r18.xyz = r22.www ? r30.xyz : r40.xyz;
//             r17.xy = r22.ww ? float2(-1,0) : float2(0,1);
//             r30.xy = r26.xy * r18.xy;
//             r30.z = dot(r26.zw, r18.zw);
//             r17.x = dot(r17.xy, r18.zw);
//             r17.y = cmp(r17.x != 0.000000);
//             r17.y = r17.y ? r22.w : 0;
//             r18.xyz = r30.xyz / r17.xxx;
//             r17.xyz = r17.yyy ? r18.xyz : r30.xyz;
//             r17.xy = saturate(r17.xy * float2(0.5,0.5) + float2(0.5,0.5));
//             r17.xy = r17.xy * r24.xy;
//             r17.xy = r17.xy * r27.xz + r31.xy;
//             r18.xy = float2(-0.5,-0.5) + r24.xy;
//             r18.xy = r18.xy * r27.xz + r31.xy;
//             r18.xy = cmp(r18.xy < r17.xy);
//             r27.xz = cmp(r17.xy < r31.xy);
//             r18.xy = (int2)r18.xy | (int2)r27.xz;
//             r18.x = (int)r18.y | (int)r18.x;
//             r30.xyzw = r15.yyyy ? cb0[85].zwxy : cb0[82].zwxy;
//             r15.y = 1.52587891e-05 + r17.z;
//             r18.yz = r17.xy * r30.zw + float2(0.5,0.5);
//             r18.yz = floor(r18.yz);
//             r17.xy = r17.xy * r30.zw + -r18.yz;
//             r40.xyzw = float4(0.5,1,0.5,1) + r17.xxyy;
//             r41.xyzw = r40.xxzz * r40.xxzz;
//             r27.xz = float2(0.0799999982,0.0799999982) * r41.yw;
//             r29.xy = r41.xz * float2(0.5,0.5) + -r17.xy;
//             r30.zw = float2(1,1) + -r17.xy;
//             r33.xy = min(float2(0,0), r17.xy);
//             r33.xy = -r33.xy * r33.xy + r30.zw;
//             r17.xy = max(float2(0,0), r17.xy);
//             r17.xy = -r17.xy * r17.xy + r40.yw;
//             r33.xy = float2(1,1) + r33.xy;
//             r17.xy = float2(1,1) + r17.xy;
//             r41.xy = float2(0.159999996,0.159999996) * r29.xy;
//             r42.xy = float2(0.159999996,0.159999996) * r30.zw;
//             r43.xy = float2(0.159999996,0.159999996) * r33.xy;
//             r44.xy = float2(0.159999996,0.159999996) * r17.xy;
//             r17.xy = float2(0.159999996,0.159999996) * r40.yw;
//             r41.z = r43.x;
//             r41.w = r17.x;
//             r42.z = r44.x;
//             r42.w = r27.x;
//             r40.xyzw = r42.zwxz + r41.zwxz;
//             r43.z = r41.y;
//             r43.w = r17.y;
//             r44.z = r42.y;
//             r44.w = r27.z;
//             r17.xyz = r44.zyw + r43.zyw;
//             r27.xzw = r42.xzw / r40.zwy;
//             r27.xzw = float3(-2.5,-0.5,1.5) + r27.xzw;
//             r29.xyw = r44.zyw / r17.xyz;
//             r29.xyw = float3(-2.5,-0.5,1.5) + r29.xyw;
//             r41.xyz = r27.zxw * r30.xxx;
//             r42.xyz = r29.xyw * r30.yyy;
//             r41.w = r42.x;
//             r43.xyzw = r18.yzyz * r30.xyxy + r41.ywxw;
//             r27.xz = r18.yz * r30.xy + r41.zw;
//             r42.w = r41.y;
//             r41.yw = r42.yz;
//             r44.xyzw = r18.yzyz * r30.xyxy + r41.xyzy;
//             r42.xyzw = r18.yzyz * r30.xyxy + r42.wywz;
//             r30.xyzw = r18.yzyz * r30.xyxy + r41.xwzw;
//             r41.xyzw = r40.zwyz * r17.xxxy;
//             r45.xyzw = r40.xyzw * r17.yyzz;
//             r17.x = r40.y * r17.z;
//             r17.y = t13.SampleCmpLevelZero(s2_s, r43.xy, r15.y).x;
//             r17.z = t13.SampleCmpLevelZero(s2_s, r43.zw, r15.y).x;
//             r18.y = t13.SampleCmpLevelZero(s2_s, r27.xz, r15.y).x;
//             r18.z = t13.SampleCmpLevelZero(s2_s, r42.xy, r15.y).x;
//             r23.w = 0;
//             r24.z = 0;
//             while (true) {
//               r27.x = cmp((int)r24.z >= 1);
//               if (r27.x != 0) break;
//               r27.x = r41.x * r17.y + r23.w;
//               r27.x = r41.y * r17.z + r27.x;
//               r27.x = r41.z * r18.y + r27.x;
//               r23.w = r41.w * r18.z + r27.x;
//               r24.z = (int)r24.z + 1;
//             }
//             r17.y = t13.SampleCmpLevelZero(s2_s, r44.xy, r15.y).x;
//             r17.z = t13.SampleCmpLevelZero(s2_s, r44.zw, r15.y).x;
//             r18.y = t13.SampleCmpLevelZero(s2_s, r42.zw, r15.y).x;
//             r18.z = t13.SampleCmpLevelZero(s2_s, r30.xy, r15.y).x;
//             r24.z = r23.w;
//             r27.x = 0;
//             while (true) {
//               r27.z = cmp((int)r27.x >= 1);
//               if (r27.z != 0) break;
//               r27.z = r45.x * r17.y + r24.z;
//               r27.z = r45.y * r17.z + r27.z;
//               r27.z = r45.z * r18.y + r27.z;
//               r24.z = r45.w * r18.z + r27.z;
//               r27.x = (int)r27.x + 1;
//             }
//             r15.y = t13.SampleCmpLevelZero(s2_s, r30.zw, r15.y).x;
//             r15.y = r17.x * r15.y + r24.z;
//             r15.y = r18.x ? 1 : r15.y;
//           } else {
//             r17.x = cmp(0 != r32.w);
//             r17.yz = r17.xx ? cb0[85].zw : cb0[82].zw;
//             r18.xyz = r32.xyz + r3.xyz;
//             r27.x = r31.z * r27.y;
//             r27.x = r31.w * r27.x;
//             r19.xyz = r23.xyz * r27.xxx + r18.xyz;
//             r18.xyz = r19.xyz + -r25.yzw;
//             r23.x = dot(r37.xyz, r18.xyz);
//             r23.y = dot(r38.xyz, r18.xyz);
//             r23.z = dot(r39.xyz, r18.xyz);
//             r37.w = r25.y;
//             r18.x = dot(r37.xyzw, r19.xyzw);
//             r38.w = r25.z;
//             r18.y = dot(r38.xyzw, r19.xyzw);
//             r25.xyz = r39.xyz;
//             r18.z = dot(r25.xyzw, r19.xyzw);
//             r20.xyz = r22.www ? r23.xyz : r18.xyz;
//             r18.xy = r22.ww ? float2(-1,0) : float2(0,1);
//             r19.xy = r26.xy * r20.xy;
//             r19.z = dot(r26.zw, r20.zw);
//             r18.x = dot(r18.xy, r20.zw);
//             r18.y = cmp(r18.x != 0.000000);
//             r18.y = r18.y ? r22.w : 0;
//             r20.xyz = r19.xyz / r18.xxx;
//             r18.xyz = r18.yyy ? r20.xyz : r19.xyz;
//             r18.xy = saturate(r18.xy * float2(0.5,0.5) + float2(0.5,0.5));
//             r18.xy = r18.xy * r24.xy;
//             r18.xy = r18.xy * r17.yz + r31.xy;
//             r19.xy = float2(-0.5,-0.5) + r24.xy;
//             r17.yz = r19.xy * r17.yz + r31.xy;
//             r17.yz = cmp(r17.yz < r18.xy);
//             r19.xy = cmp(r18.xy < r31.xy);
//             r17.yz = (int2)r17.yz | (int2)r19.xy;
//             r17.y = (int)r17.z | (int)r17.y;
//             r25.xyzw = r17.xxxx ? cb0[85].zwxy : cb0[82].zwxy;
//             r17.x = 1.52587891e-05 + r18.z;
//             r19.xy = r18.xy * r25.zw + float2(0.5,0.5);
//             r19.xy = floor(r19.xy);
//             r18.xy = r18.xy * r25.zw + -r19.xy;
//             r26.xyzw = float4(0.5,1,0.5,1) + r18.xxyy;
//             r27.xyzw = r26.xxzz * r26.xxzz;
//             r20.xy = float2(0.0799999982,0.0799999982) * r27.yw;
//             r23.xy = r27.xz * float2(0.5,0.5) + -r18.xy;
//             r24.xy = float2(1,1) + -r18.xy;
//             r25.zw = min(float2(0,0), r18.xy);
//             r25.zw = -r25.zw * r25.zw + r24.xy;
//             r18.xy = max(float2(0,0), r18.xy);
//             r18.xy = -r18.xy * r18.xy + r26.yw;
//             r25.zw = float2(1,1) + r25.zw;
//             r18.xy = float2(1,1) + r18.xy;
//             r27.xy = float2(0.159999996,0.159999996) * r23.xy;
//             r30.xy = float2(0.159999996,0.159999996) * r24.xy;
//             r31.xy = float2(0.159999996,0.159999996) * r25.zw;
//             r32.xy = float2(0.159999996,0.159999996) * r18.xy;
//             r18.xy = float2(0.159999996,0.159999996) * r26.yw;
//             r27.z = r31.x;
//             r27.w = r18.x;
//             r30.z = r32.x;
//             r30.w = r20.x;
//             r26.xyzw = r30.zwxz + r27.zwxz;
//             r31.z = r27.y;
//             r31.w = r18.y;
//             r32.z = r30.y;
//             r32.w = r20.y;
//             r18.xyz = r32.zyw + r31.zyw;
//             r20.xyz = r30.xzw / r26.zwy;
//             r20.xyz = float3(-2.5,-0.5,1.5) + r20.xyz;
//             r23.xyz = r32.zyw / r18.xyz;
//             r23.xyz = float3(-2.5,-0.5,1.5) + r23.xyz;
//             r27.xyz = r20.yxz * r25.xxx;
//             r30.xyz = r23.xyz * r25.yyy;
//             r27.w = r30.x;
//             r31.xyzw = r19.xyxy * r25.xyxy + r27.ywxw;
//             r20.xy = r19.xy * r25.xy + r27.zw;
//             r30.w = r27.y;
//             r27.yw = r30.yz;
//             r32.xyzw = r19.xyxy * r25.xyxy + r27.xyzy;
//             r30.xyzw = r19.xyxy * r25.xyxy + r30.wywz;
//             r25.xyzw = r19.xyxy * r25.xyxy + r27.xwzw;
//             r27.xyzw = r26.zwyz * r18.xxxy;
//             r37.xyzw = r26.xyzw * r18.yyzz;
//             r17.z = r26.y * r18.z;
//             r18.x = t12.SampleCmpLevelZero(s2_s, r31.xy, r17.x).x;
//             r18.y = t12.SampleCmpLevelZero(s2_s, r31.zw, r17.x).x;
//             r18.z = t12.SampleCmpLevelZero(s2_s, r20.xy, r17.x).x;
//             r19.x = t12.SampleCmpLevelZero(s2_s, r30.xy, r17.x).x;
//             r19.yz = float2(0,0);
//             while (true) {
//               r20.x = cmp((int)r19.z >= 1);
//               if (r20.x != 0) break;
//               r20.x = r27.x * r18.x + r19.y;
//               r20.x = r27.y * r18.y + r20.x;
//               r20.x = r27.z * r18.z + r20.x;
//               r19.y = r27.w * r19.x + r20.x;
//               r19.z = (int)r19.z + 1;
//             }
//             r18.x = t12.SampleCmpLevelZero(s2_s, r32.xy, r17.x).x;
//             r18.y = t12.SampleCmpLevelZero(s2_s, r32.zw, r17.x).x;
//             r18.z = t12.SampleCmpLevelZero(s2_s, r30.zw, r17.x).x;
//             r19.x = t12.SampleCmpLevelZero(s2_s, r25.xy, r17.x).x;
//             r19.z = r19.y;
//             r20.x = 0;
//             while (true) {
//               r20.y = cmp((int)r20.x >= 1);
//               if (r20.y != 0) break;
//               r20.y = r37.x * r18.x + r19.z;
//               r20.y = r37.y * r18.y + r20.y;
//               r20.y = r37.z * r18.z + r20.y;
//               r19.z = r37.w * r19.x + r20.y;
//               r20.x = (int)r20.x + 1;
//             }
//             r17.x = t12.SampleCmpLevelZero(s2_s, r25.zw, r17.x).x;
//             r17.x = r17.z * r17.x + r19.z;
//             r15.y = r17.y ? 1 : r17.x;
//           }
//           r15.y = -1 + r15.y;
//           r15.y = r34.y * r15.y + 1;
//         } else {
//           r15.y = 1;
//         }
//         r17.x = (int)r10.w & (int)r35.x;
//         r17.x = r17.x ? 1 : 0;
//         r17.y = r36.x * r1.x + r12.w;
//         r17.x = r17.x * r17.y;
//         r17.x = -r17.x * cb0[282].z + 1;
//         r15.y = min(r17.x, r15.y);
//         r34.zw = r33.zw;
//         r17.xyz = float3(1,1,1) + -r34.zwx;
//         r18.x = r15.y * r15.y;
//         r18.x = r18.x * r15.y;
//         r18.y = 1 + -r15.y;
//         r20.xyz = -r18.yyy * r17.xyz + float3(1,1,1);
//         r23.xyz = r15.yyy * r34.zwx;
//         r17.xyz = r18.xxx * r17.xyz + r23.xyz;
//         r17.xyz = r17.xyz + -r20.xyz;
//         r17.xyz = r29.zzz * r17.xyz + r20.xyz;
//         r16.xyz = r17.xyz * r16.xyz;
//         r15.y = max(r16.x, r16.y);
//         r15.y = max(r15.y, r16.z);
//         r15.y = cmp(0 < r15.y);
//         if (r15.y != 0) {
//           r15.y = t5[r15.w].val[152/4];
//           r15.y = max(r15.y, r6.z);
//           r15.w = saturate(r24.w);
//           r17.x = dot(r28.xyz, r4.xyz);
//           r17.y = r17.x * 2 + 2;
//           r17.y = max(5.96046448e-08, r17.y);
//           r17.y = rsqrt(r17.y);
//           r17.z = r24.w + r6.w;
//           r17.z = saturate(r17.z * r17.y);
//           r17.y = saturate(r17.y * r17.x + r17.y);
//           r17.y = 1 + -r17.y;
//           r18.x = r17.y * r17.y;
//           r18.x = r18.x * r18.x;
//           r18.y = r18.x * r17.y;
//           r17.y = -r18.x * r17.y + 1;
//           r18.xyz = r12.xyz * r17.yyy + r18.yyy;
//           r15.y = r15.y * r15.y;
//           r17.y = r17.z * r15.y + -r17.z;
//           r17.y = r17.y * r17.z + 1;
//           r17.z = -abs(r24.w) * r15.y + abs(r24.w);
//           r17.z = r17.z * abs(r24.w) + r15.y;
//           r17.z = sqrt(r17.z);
//           r17.z = r17.z * r7.w;
//           r17.y = r17.y * r17.y;
//           r17.z = abs(r24.w) * r9.w + r17.z;
//           r15.y = 0.159154937 * r15.y;
//           r17.y = r17.y * r17.z;
//           r17.y = max(1.17549435e-38, r17.y);
//           r15.y = r15.y / r17.y;
//           r18.xyz = r18.xyz * r15.yyy;
//           r15.y = r6.y * r17.x + r6.y;
//           r17.x = 1 + -abs(r24.w);
//           r17.y = r17.x * r17.x;
//           r17.y = r17.y * r17.y;
//           r17.x = r17.y * r17.x;
//           r15.y = -0.5 + r15.y;
//           r17.x = r15.y * r17.x + 1;
//           r15.y = r15.y * r11.w + 1;
//           r15.y = r17.x * r15.y;
//           r15.y = r15.w * r15.y;
//           r15.y = 0.30733496 * r15.y;
//           r17.xyz = r18.xyz * r15.www;
//           r18.xyz = r15.yyy * r16.xyz;
//           r18.xyz = r18.xyz * r35.yyy;
//           r16.xyz = r17.xyz * r16.xyz;
//           r16.xyz = r16.xyz * r35.zzz;
//         } else {
//           r18.xyz = float3(0,0,0);
//           r16.xyz = float3(0,0,0);
//         }
//       } else {
//         r18.xyz = float3(0,0,0);
//         r16.xyz = float3(0,0,0);
//       }
//       r21.xyz = r21.xyz + r18.xyz;
//       r22.x = r21.w;
//       r22.xyz = r22.xyz + r16.xyz;
//       r21.w = r22.x;
//     }
//   }
//   r15.xyzw = t11.Load(r2.xyzw).xyzw;
//   r0.x = t2.Load(float4(0,0,0,0)).x;
//   r0.w = cb0[282].y * r0.x;
//   r0.w = cmp(r0.w == 0.000000);
//   r0.w = r0.w ? 1.000000 : 0;
//   r0.x = r0.x * cb0[282].y + r0.w;
//   r0.x = rcp(r0.x);
//   r0.x = cb0[360].y ? 1 : r0.x;
//   r15.xyz = r15.xyz * r0.xxx;
//   r15.xyz = r15.xyz * r15.www;
//   r15.xyz = r15.xyz * r14.xyz;
//   if (cb0[280].x != 0) {
//     r0.x = cmp(r15.w < 1);
//     if (r0.x != 0) {
//       r0.x = dot(-r4.xyz, r10.xyz);
//       r0.x = r0.x + r0.x;
//       r16.xyz = r10.xyz * -r0.xxx + -r4.xyz;
//       r0.x = -r6.y * r6.y + 1;
//       r0.w = sqrt(r0.x);
//       r0.w = r6.y * r6.y + r0.w;
//       r14.w = r7.w * r7.w;
//       r14.w = r14.w * r0.x;
//       r0.x = saturate(r0.x * r0.x + r14.w);
//       r0.x = r0.w * r0.x;
//       r9.xyz = -r9.xyz * r4.www + r16.xyz;
//       r9.xyz = r0.xxx * r9.xyz + r10.xyz;
//       r0.x = min(1, r8.w);
//       r0.w = r0.x * -2 + 3;
//       r0.x = r0.x * r0.x;
//       r0.x = r0.w * r0.x;
//       r0.x = min(1, r0.x);
//       r16.xyz = r16.xyz + -r9.xyz;
//       r16.xyz = r0.xxx * r16.xyz + r9.xyz;
//       r0.x = -r6.y * 0.699999988 + 1.70000005;
//       r0.x = r6.y * r0.x;
//       r0.x = 6 * r0.x;
//       r16.w = 0;
//       r9.xyz = t9.SampleLevel(s1_s, r16.xyzw, r0.x).xyz;
//       r9.xyz = min(float3(65504,65504,65504), r9.xyz);
//       r9.xyz = r14.xyz * r9.xyz;
//       r0.x = 1 + r15.w;
//       r0.w = saturate(r0.x);
//       r0.x = saturate(r0.x + -r0.w);
//       r0.x = 1 + -r0.x;
//       r0.x = cb0[281].x ? r0.x : 0;
//       r15.xyz = r9.xyz * r0.xxx + r15.xyz;
//     }
//   }
//   r9.xyz = float3(-1,-1,-1) + r13.xyw;
//   r13.xyw = cb1[r2.z+96].xyz + r3.xyz;
//   r13.xyw = -cb2[7].xyz + r13.xyw;
//   r0.x = dot(r13.xyw, r13.xyw);
//   r0.x = sqrt(r0.x);
//   r0.w = rcp(r0.x);
//   r4.w = cb2[0].x * r0.w;
//   r4.w = -r4.w * r4.w + 1;
//   r4.w = max(0, r4.w);
//   r4.w = sqrt(r4.w);
//   r14.xy = cb2[2].xz * r0.xx;
//   r14.zw = cb2[2].xz * cb2[0].xx + -r14.xy;
//   r14.zw = float2(1.44269502,1.44269502) * r14.zw;
//   r16.xy = r14.xy * float2(2,2) + float2(1,1);
//   r14.zw = exp2(r14.zw);
//   r0.x = dot(r5.ww, r5.ww);
//   r17.xyz = r21.xyz;
//   r18.x = r21.w;
//   r18.yz = r22.yz;
//   r8.w = 0;
//   while (true) {
//     r15.w = cmp((uint)r8.w >= asuint(cb0[279].x));
//     if (r15.w != 0) break;
//     r15.w = t4[r8.w].val[12/4];
//     r15.w = r15.w ? r3.w : 0;
//     if (r15.w != 0) {
//       r15.w = t4[r8.w].val[16/4];
//       r19.x = t4[r8.w].val[24/4];
//       r19.y = t4[r8.w].val[24/4+1];
//       r19.z = t4[r8.w].val[24/4+2];
//       r19.w = t4[r8.w].val[24/4+3];
//       r15.w = cmp(0 < r15.w);
//       r16.z = dot(r10.xyz, -r19.xyz);
//       r16.w = cmp(0 < r16.z);
//       r15.w = r15.w ? r16.w : 0;
//       if (r15.w != 0) {
//         r20.x = t4[r8.w].val[56/4];
//         r20.y = t4[r8.w].val[56/4+1];
//         r20.z = t4[r8.w].val[56/4+2];
//         r20.w = t4[r8.w].val[56/4+3];
//         r23.x = t4[r8.w].val[88/4];
//         r23.y = t4[r8.w].val[88/4+1];
//         r23.z = t4[r8.w].val[88/4+2];
//         r23.w = t4[r8.w].val[88/4+3];
//         r24.x = t4[r8.w].val[104/4];
//         r24.y = t4[r8.w].val[104/4+1];
//         r24.z = t4[r8.w].val[104/4+2];
//         r24.w = t4[r8.w].val[104/4+3];
//         r25.x = t4[r8.w].val[152/4];
//         r25.y = t4[r8.w].val[152/4+1];
//         r25.z = t4[r8.w].val[152/4+2];
//         r25.w = t4[r8.w].val[152/4+3];
//         r15.w = t4[r8.w].val[168/4];
//         r16.w = max(5.96046448e-08, abs(r19.y));
//         r16.w = rcp(r16.w);
//         r17.w = cmp(-r19.y >= 0);
//         r17.w = r17.w ? r3.y : -16777216;
//         r18.w = -cb0[74].y + r17.w;
//         r18.w = max(0, r18.w);
//         r17.w = cb0[74].y + -r17.w;
//         r17.w = r17.w * r16.w;
//         r17.w = max(0, r17.w);
//         r18.w = cb0[75].x * -r18.w;
//         r18.w = 1.44269502 * r18.w;
//         r18.w = exp2(r18.w);
//         r16.w = cb0[75].y * r16.w;
//         r16.w = r18.w * r16.w + r17.w;
//         r16.w = cb0[74].x * r16.w;
//         r16.w = -1.44269502 * r16.w;
//         r16.w = exp2(r16.w);
//         r23.xyz = r23.xyz * r16.www;
//         r15.w = cmp((int)r15.w >= 0);
//         if (r15.w != 0) {
//           r15.w = dot(r13.xyw, -r19.xyz);
//           r15.w = r15.w * r0.w;
//           r16.w = cmp(r15.w >= -r4.w);
//           if (r16.w != 0) {
//             r16.w = -r15.w * r15.w + 1;
//             r16.w = max(0, r16.w);
//             r16.w = sqrt(r16.w);
//             r17.w = abs(r15.w) * abs(r15.w);
//             r22.xw = r17.ww * r14.xy;
//             r26.xy = -r17.ww * r14.xy + r16.xy;
//             r26.xy = float2(0.761642992,0.761642992) * r26.xy;
//             r22.xw = r22.xw * float2(0.273828,0.273828) + float2(1.47721004,1.47721004);
//             r22.xw = r22.xw * r14.xy;
//             r22.xw = sqrt(r22.xw);
//             r22.xw = abs(r15.ww) * r14.xy + r22.xw;
//             r22.xw = rcp(r22.xw);
//             r22.xw = r26.xy * r22.xw;
//             r22.xw = abs(r15.ww) * float2(0.5,0.5) + r22.xw;
//             r22.xw = r22.xw * r14.zw;
//             r15.w = cmp(r15.w < 0);
//             r26.xy = r16.ww * r14.xy;
//             r26.zw = cb2[2].xz * cb2[0].xx + -r26.xy;
//             r26.zw = float2(1.44269502,1.44269502) * r26.zw;
//             r26.zw = exp2(r26.zw);
//             r27.xy = rsqrt(r26.xy);
//             r16.w = dot(r26.xx, r27.xx);
//             r16.w = r27.x + r16.w;
//             r28.x = r26.z * r16.w;
//             r16.w = dot(r26.yy, r27.yy);
//             r16.w = r27.y + r16.w;
//             r28.y = r26.w * r16.w;
//             r26.xy = r28.xy * float2(1.25331402,1.25331402) + -r22.xw;
//             r22.xw = r15.ww ? r26.xy : r22.xw;
//             r22.xw = cb2[2].yw * r22.xw;
//             r15.w = cb2[10].x * r22.w;
//             r26.xyz = r22.xxx * cb2[3].xyz + r15.www;
//             r26.xyz = float3(-1.44269502,-1.44269502,-1.44269502) * r26.xyz;
//             r26.xyz = exp2(r26.xyz);
//             r26.xyz = float3(1,1,1) + -r26.xyz;
//             r15.w = r26.x + r26.y;
//             r15.w = r15.w + r26.z;
//             r16.w = 0.333333343 * r15.w;
//             r26.xyz = -r15.www * float3(0.333333343,0.333333343,0.333333343) + r26.xyz;
//             r26.xyz = r26.xyz * cb2[10].www + r16.www;
//             r26.xyz = -r26.xyz * cb2[11].xxx + float3(1,1,1);
//             r23.xyz = r26.xyz * r23.xyz;
//             r15.w = 1;
//           } else {
//             r23.xyz = float3(0,0,0);
//             r15.w = 0;
//           }
//         } else {
//           r15.w = 1;
//         }
//         if (r19.w != 0) {
//           r26.x = t4[r8.w].val[0/4];
//           r26.y = t4[r8.w].val[0/4+1];
//           r26.z = t4[r8.w].val[0/4+2];
//           r27.x = t4[r8.w].val[40/4];
//           r27.y = t4[r8.w].val[40/4+1];
//           r27.z = t4[r8.w].val[40/4+2];
//           r27.w = t4[r8.w].val[40/4+3];
//           r28.x = t4[r8.w].val[72/4];
//           r28.y = t4[r8.w].val[72/4+1];
//           r28.z = t4[r8.w].val[72/4+2];
//           r26.xyz = -r26.xyz + r3.xyz;
//           r20.x = dot(r26.xyz, r20.xyz);
//           r20.y = dot(r26.xyz, r28.xyz);
//           r20.xy = r20.xy * float2(0.5,0.5) + float2(0.5,0.5);
//           r16.w = cmp((int)r19.w == 2);
//           r22.xw = frac(r20.xy);
//           r20.xy = r16.ww ? r22.xw : r20.xy;
//           r22.xw = cb0[287].yy + r27.xy;
//           r22.xw = rcp(r22.xw);
//           r26.xy = r22.xw * r27.xy;
//           r22.xw = -r22.xw * r27.xy + float2(1,1);
//           r22.xw = float2(0.5,0.5) * r22.xw;
//           r26.zw = cb0[287].xx * r27.xy;
//           r26.zw = r26.zw + r26.zw;
//           r26.zw = r1.yy / r26.zw;
//           r20.xy = r20.xy * r26.xy + r22.xw;
//           r22.xw = float2(1,1) + -r26.zw;
//           r20.xy = max(r20.xy, r26.zw);
//           r20.xy = min(r20.xy, r22.xw);
//           r20.xy = r20.xy * r27.xy + r27.zw;
//           r20.xyz = t6.SampleLevel(s1_s, r20.xy, 0).xyz;
//           r23.xyz = r23.xyz * r20.xyz;
//         }
//         r20.xyz = r23.xyz * r15.www;
//         r15.w = cmp((int)r20.w >= 0);
//         r16.w = cmp(0 < r24.w);
//         r15.w = r15.w ? r16.w : 0;
//         r23.xyz = r24.www * r9.xyz + float3(1,1,1);
//         r23.xyz = r15.www ? r23.xyz : float3(1,1,1);
//         r15.w = (int)r10.w & (int)r23.w;
//         r15.w = r15.w ? 1 : 0;
//         r16.w = r25.w * r1.x + r12.w;
//         r15.w = r16.w * r15.w;
//         r15.w = -r15.w * cb0[282].z + 1;
//         r23.xyz = min(r23.xyz, r15.www);
//         r15.w = cmp(r16.z >= 0);
//         r16.w = r16.z + r0.x;
//         r16.w = saturate(-1 + r16.w);
//         r16.w = -1 + r16.w;
//         r16.w = cb0[285].x * r16.w + 1;
//         r15.w = r15.w ? r16.w : 1;
//         r26.xyz = r23.xyz * r15.www;
//         r27.xyz = float3(1,1,1) + -r24.xyz;
//         r28.xyz = r26.xyz * r26.xyz;
//         r28.xyz = r28.xyz * r26.xyz;
//         r23.xyz = -r23.xyz * r15.www + float3(1,1,1);
//         r23.xyz = -r23.xyz * r27.xyz + float3(1,1,1);
//         r24.xyz = r26.xyz * r24.xyz;
//         r24.xyz = r28.xyz * r27.xyz + r24.xyz;
//         r24.xyz = r24.xyz + -r23.xyz;
//         r23.xyz = r25.zzz * r24.xyz + r23.xyz;
//         r20.xyz = r23.xyz * r20.xyz;
//         r15.w = max(r20.x, r20.y);
//         r15.w = max(r15.w, r20.z);
//         r15.w = cmp(0 < r15.w);
//         if (r15.w != 0) {
//           r15.w = t4[r8.w].val[128/4];
//           r15.w = max(r15.w, r6.z);
//           r16.w = saturate(r16.z);
//           r17.w = dot(-r19.xyz, r4.xyz);
//           r18.w = r17.w * 2 + 2;
//           r18.w = max(5.96046448e-08, r18.w);
//           r18.w = rsqrt(r18.w);
//           r19.x = r16.z + r6.w;
//           r19.x = saturate(r19.x * r18.w);
//           r18.w = saturate(r18.w * r17.w + r18.w);
//           r18.w = 1 + -r18.w;
//           r19.y = r18.w * r18.w;
//           r19.y = r19.y * r19.y;
//           r19.z = r19.y * r18.w;
//           r18.w = -r19.y * r18.w + 1;
//           r19.yzw = r12.xyz * r18.www + r19.zzz;
//           r15.w = r15.w * r15.w;
//           r18.w = r19.x * r15.w + -r19.x;
//           r18.w = r18.w * r19.x + 1;
//           r19.x = -abs(r16.z) * r15.w + abs(r16.z);
//           r19.x = r19.x * abs(r16.z) + r15.w;
//           r19.x = sqrt(r19.x);
//           r19.x = r19.x * r7.w;
//           r18.w = r18.w * r18.w;
//           r19.x = abs(r16.z) * r9.w + r19.x;
//           r15.w = 0.159154937 * r15.w;
//           r18.w = r19.x * r18.w;
//           r18.w = max(1.17549435e-38, r18.w);
//           r15.w = r15.w / r18.w;
//           r19.xyz = r19.yzw * r15.www;
//           r15.w = r6.y * r17.w + r6.y;
//           r16.z = 1 + -abs(r16.z);
//           r17.w = r16.z * r16.z;
//           r17.w = r17.w * r17.w;
//           r16.z = r17.w * r16.z;
//           r15.w = -0.5 + r15.w;
//           r16.z = r15.w * r16.z + 1;
//           r15.w = r15.w * r11.w + 1;
//           r15.w = r16.z * r15.w;
//           r15.w = r16.w * r15.w;
//           r15.w = 0.30733496 * r15.w;
//           r19.xyz = r19.xyz * r16.www;
//           r23.xyz = r15.www * r20.xyz;
//           r23.xyz = r23.xyz * r25.xxx;
//           r19.xyz = r19.xyz * r20.xyz;
//           r19.xyz = r19.xyz * r25.yyy;
//         } else {
//           r23.xyz = float3(0,0,0);
//           r19.xyz = float3(0,0,0);
//         }
//       } else {
//         r23.xyz = float3(0,0,0);
//         r19.xyz = float3(0,0,0);
//       }
//       r17.xyz = r23.xyz + r17.xyz;
//       r18.xyz = r19.xyz + r18.xyz;
//     }
//     r8.w = (int)r8.w + 1;
//   }
//   if (cb0[360].x != 0) {
//     r0.x = 0.5 + r13.z;
//     r4.xyzw = t8.Load(r2.xyzw).xyzw;
//     r1.xyz = r4.xyz * r1.zzz;
//     r0.w = (int)r3.w & asint(cb0[284].y);
//     r0.w = r0.w ? cb0[284].x : 1;
//     r1.xyz = r1.xyz * r0.www;
//     r0.w = max(r12.x, r12.y);
//     r0.w = max(r0.w, r12.z);
//     r0.w = -0.200000003 + r0.w;
//     r0.w = saturate(4 * r0.w);
//     r0.w = cb0[282].w * r0.w;
//     r3.xyz = r7.xyz * r11.xyz + -r5.xyz;
//     r3.xyz = r0.www * r3.xyz + r5.xyz;
//     r3.xyz = r3.xyz * r0.xxx;
//     r1.xyz = r1.xyz * r3.xyz + -r8.xyz;
//     r8.xyz = r4.www * r1.xyz + r8.xyz;
//   }
//   r0.x = (int)r3.w & asint(cb0[284].w);
//   r0.x = r0.x ? cb0[284].z : 1;
//   r1.xyz = r15.xyz * r0.xxx;
//   r0.xy = (int2)r0.yz;
//   r0.zw = r2.zw;
//   r0.x = t10.Load(r0.xyzw).x;
//   r0.y = 1 + -r0.x;
//   r0.x = cb0[283].w * -r0.x + 1;
//   r0.z = r7.w + r0.y;
//   r0.w = r6.z * -16 + -1;
//   r0.w = exp2(r0.w);
//   r0.z = log2(abs(r0.z));
//   r0.z = r0.w * r0.z;
//   r0.z = exp2(r0.z);
//   r0.z = r0.z + r0.y;
//   r0.z = saturate(-1 + r0.z);
//   r0.z = -1 + r0.z;
//   r0.w = cb0[372].z * r0.z;
//   r0.z = cb0[372].z * r0.z + 1;
//   r0.w = cb0[283].w * r0.w + 1;
//   r0.z = min(r5.w, r0.z);
//   r3.xyz = r12.xyz * float3(2.04040003,2.04040003,2.04040003) + float3(-0.332399994,-0.332399994,-0.332399994);
//   r4.xyz = r12.xyz * float3(-4.79510021,-4.79510021,-4.79510021) + float3(0.641700029,0.641700029,0.641700029);
//   r6.yzw = r12.xyz * float3(2.75519991,2.75519991,2.75519991) + float3(0.690299988,0.690299988,0.690299988);
//   r7.xyz = r0.zzz * r3.xyz + r4.xyz;
//   r7.xyz = r7.xyz * r0.zzz + r6.yzw;
//   r7.xyz = r7.xyz * r0.zzz;
//   r7.xyz = max(r7.xyz, r0.zzz);
//   r0.y = min(1, r0.y);
//   r9.xyz = r5.xyz * float3(2.04040003,2.04040003,2.04040003) + float3(-0.332399994,-0.332399994,-0.332399994);
//   r10.xyz = r5.xyz * float3(-4.79510021,-4.79510021,-4.79510021) + float3(0.641700029,0.641700029,0.641700029);
//   r11.xyz = r5.xyz * float3(2.75519991,2.75519991,2.75519991) + float3(0.690299988,0.690299988,0.690299988);
//   r13.xyz = r0.yyy * r9.xyz + r10.xyz;
//   r13.xyz = r13.xyz * r0.yyy + r11.xyz;
//   r13.xyz = r13.xyz * r0.yyy;
//   r13.xyz = max(r13.xyz, r0.yyy);
//   r3.xyz = r0.www * r3.xyz + r4.xyz;
//   r3.xyz = r3.xyz * r0.www + r6.yzw;
//   r3.xyz = r3.xyz * r0.www;
//   r0.yzw = max(r3.xyz, r0.www);
//   r3.xyz = r0.xxx * r9.xyz + r10.xyz;
//   r3.xyz = r3.xyz * r0.xxx + r11.xyz;
//   r3.xyz = r3.xyz * r0.xxx;
//   r3.xyz = max(r3.xyz, r0.xxx);
//   r4.xyz = r13.xyz * r8.xyz;
//   r1.xyz = r7.xyz * r1.xyz;
//   r3.xyz = r17.xyz * r3.xyz;
//   r3.xyz = r5.xyz * r3.xyz + r4.xyz;
//   r0.xyz = r18.xyz * r0.yzw + r1.xyz;
//   r1.xyz = r12.xyz * r6.xxx + float3(1,1,1);
//   r0.xyz = r1.xyz * r0.xyz;
//   r0.xyz = r0.xyz * r1.www;
//   r0.xyz = r3.xyz * r1.www + r0.xyz;
//   r0.w = 1;
// // No code for instruction (needs manual fix):
// store_uav_typed u0.xyzw, r2.xyzz, r0.xyzw
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// C:\Program Files (x86)\Steam\steamapps\common\FAR Changing Tides\ShaderFixes\fd5f1bdef0e5bce6-cs_replace.txt(105,10): error X3000: syntax error: unexpected token ')'
/////////////////////////////////////////////////////////////////////////////
